pra*_*tyk 20 javascript dom javascript-events
因此,我希望在刷新页面或用户退出页面以供将来使用时,将某些信息存储在浏览器的localstorage中.我想我会使用一些Javascript来检测事件并存储页面访问的状态.
现在我的困境是:我应该使用Onbeforeunload或Onunload方法来实现这个目标吗?
谢谢
Dag*_*bit 20
为什么不注册它只是为了安全起见?只需让监听器检查数据是否已存储并提前退出.
这是使用事件属性的快速示例:
window.onunload = window.onbeforeunload = (function(){
var didMyThingYet=false;
return function(){
if (didMyThingYet) return;
didMyThingYet=true;
// do your thing here...
}
}());
Run Code Online (Sandbox Code Playgroud)
或者您可以使用attachEvent:
(function(){
var didMyThingYet=false;
function listener (){
if (didMyThingYet) return;
didMyThingYet=true;
// do your thing here...
}
window.attachEvent("onbeforeunload", listener);
window.attachEvent("onunload", listener);
}());
Run Code Online (Sandbox Code Playgroud)
适当的地方是onunload.onbeforenload意味着在您可能需要阻止用户离开页面时使用,例如当存在未保存的数据时.
我会厌倦编写代码来涵盖所有案例,因为你不愿意测试所有案例.如果您进行研究并发现它在浏览器中过于复杂,是的,请继续并尽可能多地做.但是,我相信在onunload上进行本地存储没有问题.我确实遇到了一个问题,试图将信息发送到服务器onunload.这在浏览器中并没有可靠地发生,所以我最终得到的方法是使用卸载和beforeunload,但只是在尽职调查之后.
所以我的建议是onunload,检查所有的浏览器.
| 归档时间: |
|
| 查看次数: |
16948 次 |
| 最近记录: |