开发者社区> 问答> 正文

关于浏览器刷新保存数据的问题

有个需求:页面有一个文本框,我在里面写了点文字,当我刷新浏览器的时候,这个文本框不清空,还是原来的文字,但是我如果在浏览器不关闭的情况下又打开了一个有这个文本框的页面,此时文本框是空的。
我本来想用cookie做,但是发现只有在浏览器关闭了以后才会清除cookie,(而我先走是在不关闭浏览器的情况下,再次打开那个页面,文本框是空的)

展开
收起
爵霸 2016-06-17 11:56:59 2174 0
2 条回答
写回答
取消 提交回答
  • cookie是持久化在你的域名下,只会有过期,不会因为浏览器关闭清楚cookie(除非主动代码删除)
    你那种场景
    1.用前端实现的话应该用的是localStorage,刷新一次后localStorage清除,再刷新就没有了
    2.服务端实现,实时保存,及一个长表单,每过一段时间去保存一下

    2019-07-17 19:42:28
    赞同 展开评论 打赏
  • 用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);
    }
    2019-07-17 19:42:28
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
基于浏览器的实时构建探索之路 立即下载
WEB浏览器中即将发生的安全变化 立即下载
基于浏览器的实时构建探索之路--玄寂 立即下载