小编Har*_*nix的帖子

如何在关闭期间保存页面状态

当用户在没有首先保存其工作的情况下关闭浏览器窗口时,将Web应用程序的数据与服务器同步的可接受方式是什么?我正在谈论要么击中"X",要么按F5或其他东西.

一点背景:

有问题的webapp有一个主窗口,然后是从主窗口产生的子窗口,可以在子窗口中完成沙盒"工作".我无法控制这方面的实施.

用例:

在用户决定单击"确定"以在服务器上保留数据之前,每个子窗口都可以输入相当大量的信息.

我考虑/试过的事情:

  • onbeforeunload如果有未保存的工作,则通过从事件处理程序返回字符串来进行简单的关闭确认.(问题:我的团队负责人不愿意允许特定于浏览器的" alert对话框"在webapp中.据他说:用户体验依赖于看起来丑陋的对话框.)
  • onpageunload事件期间触发的AJAX请求将数据发送回服务器.(问题:由于永远不会调用XHR回调,我发现有些浏览器会打开连接,然后随机尝试触发打开的未来窗口的回调.)
  • onpageunload事件期间触发了同步AJAX请求.(问题:忽略这样一个事实,包括我在内的人往往讨厌这样做以及它被弃用并将在未来删除的事实...... UI可能会长时间挂起等待AJAX​​请求完成,如果他们失去互联网,可能无限期.)
  • 定期保存页面内容,或附加onchange/ onblur/ onwhateverelse事件处理程序.(问题:与上面和下面更"懒惰"的实现相比,大量的编码开销.)
  • 使用localStorage以保持客户端机器上的改变农田,他们居然承诺其工作的服务器.(问题:浏览器支持......这需要支持尽可能多的地方支持XHR.客户端存储是否有广泛的支持?我认为如果我没有弄错的话会有一点差距.)

提前感谢您的意见.

html javascript

7
推荐指数
1
解决办法
554
查看次数

标签 统计

html ×1

javascript ×1