例如有人正在写文章,但不小心关闭了浏览器。是否可以保存他写的所有内容?
类似这样的:
onExit -> 获取用户填写的所有信息 -> 将信息保存在数据库中的 AJAX 请求。
或者
只有每隔x秒抢先保存才有可能吗?
最佳答案
我的公司通过运行 ajax 查询每 5 秒保存一次来实现此目的,但您应该查看 localStorage
要在客户端上保存,请使用 onunload
保存到该位置并稍后恢复。
我做了一个html5 notepad每个 onchange
事件以及每 500ms 和 onbeforeunload
存储到 localStorage
来保存一个字段,但它很容易修改,这是(必要的)代码:
<textarea placeholder="Type here, see it here..." id="notepad"></textarea>
<script>
var n = document.getElementById("notepad");
/* save */
var s = function(){localStorage.setItem("notepad", n.value);}
/* retrieve (only on page load) */
if(window.localStorage){ n.value = localStorage.getItem("notepad");}
/* autosave onchange and every 500ms and when you close the window */
n.onchange = s();
setInterval( s, 500);
window.onunload = s();
</script>
如果您在that page上查看源代码,您还会发现 polyfill用于支持旧版浏览器,但 localStorage
应该 work in IE8+
我不相信客户端能够单独在 onbeforeunload
中完成 ajax 调用,但我真的不知道该函数在顶级浏览器中的工作原理。
关于javascript - 当用户关闭浏览器时是否可以保存所有字段信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10882012/