各位大侠,想向你们请教一个问题,是这样,我在ASP.NET 1.1中关闭客户端页面时,触发对数据库更新操作,在后台的服务器页面增加一个按钮(在按钮的点击事件里面有更新数据库的操作), 在前台的 ONBEFOREUNLOAD中也插入了对按钮点击事件的引用,同时用 settimeout("self.close()",60000) 指定本页面的关闭时间, 在公司内部的任意主机出发访问服务器后关闭页面后能够更新数据库, 但从日本的客户端出发,关闭客户端页面时候就不能更新数据库了。
原因我也分析出来了,大致是因为从日本的客户端出发到中国侧这边的服务器,中间的路由节点较多,网络访问延迟过大,导致于ONBEFOREUNLOAD事件触发时,日本的客户端还没有连接到中国侧的服务器的数据库,页面就已经被关闭了,所以后面更新数据库的操作无法进行,请教各位有没有其他的好方法,能够保证日本侧页面关闭时也能将服务器端数据库更新事件执行完毕! 谢谢!
------解决方案--------------------------------------------------------
这种需求是不可靠的,是不能保证100%完成的。
你应该在页面放置一个按钮,让用户点击去执行更新数据库操作。
------解决方案--------------------------------------------------------
那就别嫌onbeforeunload 不能保证完成更新操作。onbeforeunload 刷新也会执行的。