2016-06-07 20:53:16 2786次浏览 3条回答 0 悬赏 50 金钱

今天写一个程序时,在填资料时填到一半,不小心按到回车键,然后页面刷新了,然后辛苦半天填写的资料就没有人。有什么办法可以回到刚刚填写的页面,让那些辛苦填了半天突然不知道什么原因就资料就没有了还能恢复到当前状态呢?

最佳答案

  • robbins 发布于 2016-06-09 23:10 举报

    给你一个思路

    window.onbeforeunload = function b(){
    
    setTimeout(function(){
        setTimeout(beforeloadResult, 50)}
        , 50);
    
    return '确认离开网页?';
    

    };

    //如果用户留在了页面,就执行下面这个。
    function beforeloadResult () {
    alert('你还在本页面');
    }

    不用确认用户表单是否提交,只要打开页面超过一定时间就需要确认才可以离开。

    2 条回复
    回复于 2016-06-09 23:11 回复

    代码没了,JS代码这样的:

    window.onbeforeunload = function b(){
    
    setTimeout(function(){
        setTimeout(beforeloadResult, 50)}, 50);
        return '确认离开网页?';
    };
    

    //如果用户留在了页面,就执行下面这个。

    function beforeloadResult () {
        alert(1);
    }
    
    回复于 2016-06-18 01:56 回复

    睡不着,再回复下。
    如何恢复表单数据
    恢复数据也完全不用后端服务器资源参与,直接使用js每隔一段就收集表单的存在的value值保存成一个快照cookie并设定为短时间过期即可,用户误操作后再次进入表单页面加载完成后如果存在cookie,就提示用户是否同意恢复,同意则读取cookie里的快照放入表单value里,不同意则销毁cookie。提交完表单时直接销毁快照。
    这样做的风险就是允许js操作cookie会比较不安全。
    而好处也显而易见不占用任何服务器资源。
    另外也可以使用h5的本地缓存,方法多种多样就看怎么想了,性能优先还是安全第一。

  • 回答于 2016-06-08 09:06 举报

    很多浏览器返回上一页面可以保留资料,但页面刷新一般不会保留.
    你要记录就用本地cookie记录未完成的资料咯

    3 条回复
    回复于 2016-06-08 16:54 回复

    返回上页那种一般是已经提交了的,一些动态生成的输入框就没有了。有没有什么办法在用户点到别的按钮或链接时直接提示资料未完成 是否放弃 如果放弃才跳转?

    回复于 2016-06-11 16:21 回复

    主要思路是得保存到用户输入的内容,有了内容你要怎么折腾都可以.最简单的就是保存到用户本地,重载页面时根据需要去加载.

    回复于 2016-06-13 16:55 回复

    我去整理整理,谢谢

    觉得很赞
  • 回答于 2016-06-10 21:26 举报

    我们项目中 现在有这个功能 我们采用的思路就是 用户每输入一个 就保存到redis中 输入完全点击确认会保存到数据库中 假如误操作 进入这个页面 会从redis中 读取 以前输入的值

    1 条回复
    回复于 2016-06-13 16:54 回复

    放入缓存中这个思路确实不错,比较安全。谢谢提供思路

您需要登录后才可以回答。登录 | 立即注册
liuxuean
经理

liuxuean 深圳

注册时间:2013-04-06
最后登录:2019-08-14
在线时长:19小时48分
  • 粉丝5
  • 金钱1035
  • 威望0
  • 积分1225

热门问题