首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

页面控件事件跟页面刷新的一个小陷阱

2012-10-29 
页面控件事件和页面刷新的一个小陷阱??? 这个小陷阱很小,以至于在公网上晒了5个多月才暴露出来。??? 业务页

页面控件事件和页面刷新的一个小陷阱

??? 这个小陷阱很小,以至于在公网上晒了5个多月才暴露出来。

??? 业务页面是这样的,一个下拉框和一个可办理业务列表。下拉框中是可选地市,业务列表中是当前选中的地市可办理的业务。当客户从下拉框中选择一个地市的时候,页面自动重新加载。当客户点击某业务办理的链接时,会把下拉框的当前地市值和业务的唯一标识发到服务器端。

???

?

??? 表面看上去,没有任何问题。测试也没出现状况。但是,这两天接到一个诡异的投诉:B地市的客户办理了A地市的业务。我经过一番折腾,排除种种可能后,最终确定错误就在这个页面。

??? 案发现场重现:客户首先查看A地市的业务,然后又想看看B地市的业务,于是从下拉框中选择B地市,此时就会触发changeCity函数。当网速很慢的时候,window.location这句话不会立刻执行,而是能看到地址栏中的进度条慢慢地爬行。但此时id为“city”的这个select控件的值已经变为了B地市。如果客户不留意,没等页面刷完就去点业务的话,就出现了B地市的客户办理了A地市的业务的情况。

??? 要解决这个问题有很多种方法,当选择地市的时候禁用当前页面所有业务,或者用ajax方式改造一下都行。

??? 通过这个小问题,我想应该能够引出一系列类似的问题。页面其实并不简单。

1 楼 xieye 2008-12-10   所以我几乎不用下拉框的 onchange这样的方法,必须有另外一个按钮,点击确定后,才window.location= ...

期待楼主的好文ing 2 楼 hhj039 2008-12-12   用另外一个按钮提交?如果先点地市B,再点业务B,然后改变地市为A。马上点提交按钮。这样不又可以犯罪了。(网速很慢很慢的情况下)

热点排行