有个需求:页面有一个文本框,我在里面写了点文字,当我刷新浏览器的时候,这个文本框不清空,还是原来的文字,但是我如果在浏览器不关闭的情况下又打开了一个有这个文本框的页面,此时文本框是空的。
我本来想用cookie做,但是发现只有在浏览器关闭了以后才会清除cookie,(而我先走是在不关闭浏览器的情况下,再次打开那个页面,文本框是空的)
cookie是持久化在你的域名下,只会有过期,不会因为浏览器关闭清楚cookie(除非主动代码删除)
你那种场景
1.用前端实现的话应该用的是localStorage,刷新一次后localStorage清除,再刷新就没有了
2.服务端实现,实时保存,及一个长表单,每过一段时间去保存一下
用cookie、session和localStorage不是关键,这三个都不会区分新开页和刷新页。
你需要自己写代码处理,我想到的最简单的方式是学习单页面webapp那样,给url加内容
比如你打开那个文本框的链接是 http:localhost/answer/13434。
执行下面这些步骤
•打开之后立即判断url结尾是否有#autoSave,
•如果没有那么把url改成这样http:localhost/answer/13434#autoSave,
•如果有就从存储中读取之前的文本值,
•然后你每隔60s保存一次文本框的值,存到哪里无所谓。cookie localStorage随意。
下面是我写的一个简单示例
window.onload = function(){
if(location.href.endsWith('#autoSave')){
load();
}else{
// 当前文本是空的,利用保存方法清空过去的信息
save()
location.href = location.href + '#autoSave';
}
setInterval(save(),60000);
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。