ASP.NET1.1中,关闭客户端页面时触发对数据库更新操作的问题,请教!

ysb_1688 2012-03-31 11:37:14
各位大侠,想向你们请教一个问题,是这样,我在ASP.NET 1.1中关闭客户端页面时,触发对数据库更新操作,在后台的服务器页面增加一个按钮(在按钮的点击事件里面有更新数据库的操作), 在前台的 ONBEFOREUNLOAD中也插入了对按钮点击事件的引用,同时用 settimeout("self.close()",60000) 指定本页面的关闭时间, 在公司内部的任意主机出发访问服务器后关闭页面后能够更新数据库, 但从日本的客户端出发,关闭客户端页面时候就不能更新数据库了。
原因我也分析出来了,大致是因为从日本的客户端出发到中国侧这边的服务器,中间的路由节点较多,网络访问延迟过大,导致于ONBEFOREUNLOAD事件触发时,日本的客户端还没有连接到中国侧的服务器的数据库,页面就已经被关闭了,所以后面更新数据库的操作无法进行,请教各位有没有其他的好方法,能够保证日本侧页面关闭时也能将服务器端数据库更新事件执行完毕! 谢谢!
...全文
137 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
习惯就好 2012-03-31
  • 打赏
  • 举报
回复


<body onbeforeunload = "js调用后台方法">
</body>

js调用后台方法

ysb_1688 2012-03-31
  • 打赏
  • 举报
回复
谢谢,但放置按钮虽可以起到更新数据库的作用,但有两个问题,
一个,是放置按钮不符合客户的要求。
二个,即使是放置了按钮但 客户在操作页面时候不点击该按钮而是直接点击了页面右上方的关闭按钮,导致了页面关闭,数据库无法更新的情况也肯定会发生的,到时候也会对后面的系统操作产生影响。
而让页面的右上方的关闭按钮失效,似乎也很难做到。
难啊!
孟子E章 2012-03-31
  • 打赏
  • 举报
回复
这种需求是不可靠的,是不能保证100%完成的。
你应该在页面放置一个按钮,让用户点击去执行更新数据库操作。

ysb_1688 2012-03-31
  • 打赏
  • 举报
回复
""window.open('dele.aspx','_blank')">
的方法应该管用,我之前好像有试过,但是否此方法跟浏览器的设置有关,如果浏览器的安全设置过高,或者版本高了,比如IE8,她就不支持"window.open('dele.aspx','_blank')">了?
孟子E章 2012-03-31
  • 打赏
  • 举报
回复
客户端的东西是没有任何保障的,不要过分依赖它。浏览器都能禁用脚本,
孟子E章 2012-03-31
  • 打赏
  • 举报
回复
页面都关了,页面中的代码已经被释放了
除非你
<body onbeforeunload = "window.open('dele.aspx','_blank')">
才可以执行,执行完后dele.aspx里面输出window.close();
ysb_1688 2012-03-31
  • 打赏
  • 举报
回复
谢谢,目前我有用过方法1,从公司内部访问没有问题,但从日本的客户端访问这边时,就有问题,日本的客户端关闭时,后台的BUTTON1_CLICK事件应该是被触发了,但事件里面对数据库的更新部分还没有进行,页面就被关闭了,
settimeout("self.close()",60000) 好像根本就不管用。
孟子E章 2012-03-31
  • 打赏
  • 举报
回复
那就别嫌onbeforeunload 不能保证完成更新操作。onbeforeunload 刷新也会执行的。

62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧