Firefox Crash后session内容的恢复

来源:Firefox Crash后session内容的恢复

    S3K3论坛管理今天Firefox Crash之后,他的会话全部丢失了。

Session 变量    当您运行一个应用程序时,您会打开它,做些更改,然后关闭它。这很像一次会话。计算机清楚你是谁。它知道你何时启动应用程序,并在何时终止。但是在因特网上,存在一个问题:服务器不知道你是谁以及你做什么,这是由于 HTTP 地址不能维持状态。

    通过在服务器上存储用户信息以便随后使用,PHP session 解决了这个问题(比如用户名称、购买商品等)。不过,会话信息是临时的,在用户离开网站后将被删除。如果您需要永久储存信息,可以把数据存储在数据库中。
Session 的工作机制是:为每个访问者创建一个唯一的 id (UID),并基于这个 UID 来存储变量。UID 存储在 cookie 中,亦或通过 URL 进行传导。按照以往来说,Firefox在重新启动之后或者Crash之后会有一个会话还原的页面。但今天确实没有。后来我进行Google查阅,试了很多种办法。终于找到一种非常快速方便的还原步骤。

    首先简单说明下Firefox记录会话的机制,他会在每个用户的Profile下放入相应的session.js和session.bak,一般只需要用到js即可,在每次重启Firefox的时候他会去检索这些文件,然后根据里面的条目来进行自动加载。但有时候,Firefox并不会自动去加载这个文件,这个时候就需要用到我们手动加载的步骤了。

    【1】首先查看自己的Profile下有没有对应的session.js,在我的Ubuntu下我的路径目录内容为(一般都以session作为名字,但也有部分叫recovery.js或者previous.js,具体可以进去打开之后查看有没有自己的tab条目)

~/.mozilla/firefox/nn63c34z.default/sessionstore-backups$

    你进入到这个目录之后,查看里面后缀为js或者bak的文件,我找到了一个叫previous.js的文件,里面确实记录了我上百条tab的记录。

{"windows":[{"tabs":[{"entries":[{"url":"http://www.cnblogs.com/rickyk/","title":"","ID":226624224,"docshellID":48,"referrer":"http://64.233.183.163/url?sa=t&rct=j&q=site%3Ablog.rickyk.com%20%20git&source=web&cd=14&ved=0CCwQFjADOAo&url=%68%74%74%70%3a%2f%2f%62%6c%6f%67%2e%6a%6f%62%62%6f%6c%65%2e%63%6f%6d%2f%35%34%31%38%34%2f&ei=Z-1WVOnxA4OayQTJtYHABQ&usg=AFQjCNFa2cxuuZxoy0Dt97jSae7pkCVkEA&bvm=bv.78677474,d.aWw&

   都是以JSON格式记录的,其中windows标记代表你有几个窗口,tab标记记录你的具体的tab页面,这个可以很容易的看出来。

    【2】安装附件--Session Manager(会话管理器)

    添加这个附件之后,你可以在『工具』中找到这个附件的选项,这个时候我们发现“恢复会话"是空的不能点。于是,我做了个测试,我直接点保存会话,看看此时这个插件会把文件写入到哪,并且以什么格式记录。最后发现他写在了

~/.mozilla/firefox/nn63c34z.default/sessions$ ls
backup.session

    里面有一个session文件,其实同样也是JSON格式,我们打开之后,内容如下:


复制代码
[SessionManager v2]
name=[ 上次浏览的会话 ]
timestamp=1417656557816
autosave=false  count=1/1     group=备份会话  screensize=1360x768
{"windows":[{"tabs":[{"entries":[{"url":"http://www.cnblogs.com/rickyk/","title":"","ID":226624224,"docshellID":48,"referrer":"http://64.233.183.163/url?sa=t&rct=j&q=site%3Ablog.rickyk.com%20%20git&source=web&cd=14&ved=0CCwQFjADOAo&url=%68%74%74%70%3a%2f%2f%62%6c%6f%67%2e%6a%6f%62%62%6f%6c%65%2e%63%6f%6d%2f%35%34%31%38%34%2f&ei=Z-1WVOnxA4OayQTJtYHABQ&usg=AFQjCNFa2cxuuZxoy0Dt97jSae7pkCVkEA&bvm=bv.78677474,d.aWw

复制代码

    对比我们之前在backup里面的js文件内容,发现多了

[SessionManager v2]
name=[ 上次浏览的会话 ]
timestamp=1417656557816
autosave=false  count=1/1     group=备份会话  screensize=1360x768

    我后来想如果格式相同既然都是JSON应该可以恢复我之前的会话,后来我就把之前的previou.js文件拷到了这个目录中后,用Vim打开在文件的顶端跟他一样加入了上面一句。并把后缀改成.session,尝试看下这样的格式能不能让这个插件正确读取。

    这个时候我在打开工具--会话管理器--恢复会话,惊人的发现,居然有两个恢复条目,其中第一个就是之前做的测试,第二个就是我们刚才进行更改之后成功转变为session的内容。然后我们删除之后作为测试的session文件,留下真正需要恢复的条目,进行恢复。奇迹出现了,我们的会话全部都回来了。

    这套办法有些注意点需要注意,首先一般Firefox Crash之后会在你个人目录下都会有session相关的js和bak文件进行保存,即使你没有正确恢复上次会话,这些文件还是有的。你必须确保文件存在,你才能进行之后的步骤。

    总之,这套办法确实可以让你恢复你之前丢失的会话,我成功恢复了700多个tab,希望这篇总结能够对你有帮助:)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值