fang5566
管理员
管理员
  • UID3719
  • 注册日期2005-03-07
  • 最后登录2024-05-09
  • 发帖数18483
  • 经验4837枚
  • 威望5点
  • 贡献值4316点
  • 好评度1116点
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 终身成就
阅读:5526回复:7

[Nightly] Firefox 33.0a 已启用新的浏览会话恢复方式

楼主#
更多 发布于:2014-06-30 19:36
Session Restore(浏览会话恢复)是 Firefox 的一项重要的功能,它保证了你在因为各种原因关闭了 Firefox,下一次启动的时候仍能恢复关闭前所打开的标签页,延续了你的使用流程,节省了重复打开网页的时间。以往的会话恢复使用的是 sessionstore.js 一个文件,它的功能存在以下明显缺点
1、如果电脑断电关闭、操作系统崩溃,这时候会导致会话丢失,无法恢复。
2、有时候扩展要求重启浏览器,或者 Firefox 更新版本后导致会话丢失。
3、甚至有时候关闭浏览器,以后再打开,也导致丢失。
这些问题都源于单一的 sessionstore.js 损坏或写入失败。

Firefox 33.0a 已经使用了新的会话恢复功能,目的是减少上述情况发生导致的潜在的会话数据丢失问题。



大家看一下配置文件夹的 sessionstore-backups 文件夹就会看到截图里面那样的几个文件。

新的备份会话方式流程
1、在浏览网页的行为发生变化的时候,会将当前会话写入 recovery.js,同时生成一份 recovery.bak,这相当于第一次生成备份。
2、间隔15秒后,会再写入到 recovery.js,recovery.js 和 recovery.bak 文件里面的状态保持15秒的时间间隔。这样保证系统随时能获取到你最新的会话。
3、Firefox 关闭时,会将当前会话写入 sessionstore.js,下次启动时,将此次会话写入到 previous.js。这样保证如果浏览器崩溃了,你仍可以恢复到最近的 previous.js 里面的会话。
4、Firefox 每次更新版本以后,都将 sessionstore.js 复制一份并更名为 upgrade.js-xxx(xxx 是你的构建版本 id,见上图)。这尤其适合每天更新版本的 Nightly。

恢复过程
1、如果浏览器之前是正常关闭,那么就恢复 sessionstore.js 里面的内容。
2、如果浏览器崩溃或异常,那么就恢复 recovery.js 里面的内容,因为 recovery.js 内容在时间上最接近。
3、如果仍不行,那么就恢复 recovery.bak 里面的内容,因为这个文件内容仅差 recovery.js 的15秒。
4、再不行,那么就恢复 previous.js 里面的内容,那是再上一次正常关闭时候保留的会话。
5、最坏的情况,上面的所有文件都损坏,那么只好恢复上次更新版本时候备份的 upgrade.js 会话。

那么和以前的备份恢复会话的方式有什么区别呢?
传统的方式只备份在sessionstore.js,最多有一个不靠谱的 sessionstore.bak,如果文件损坏,那么对不起,你没得恢复,新的方式增加了很多文件,提高了恢复的成功率。另外也多了选择,就是近期备份(sessionstore.js,recovery.js 和 recovery.bak)和远期备份(previous.js 和 upgrade.js),你也可以选择恢复哪种备份。


如果觉得15秒过于频繁,可以参考3楼的参数,增大写入间隔。


Bug 883609 - [Session Restore] Make backups useful
介绍文章:Mozilla launches improved Session Restore in Firefox 33
了解一下会话恢复功能
Firefox More than meets your experience
fang5566
管理员
管理员
  • UID3719
  • 注册日期2005-03-07
  • 最后登录2024-05-09
  • 发帖数18483
  • 经验4837枚
  • 威望5点
  • 贡献值4316点
  • 好评度1116点
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 终身成就
1楼#
发布于:2014-10-28 11:54
KanKanFirst:想请问一下在最新的33版中要如何才能完全禁用自动备份呢回到原帖
没办法完全禁用,禁用也不合理
Firefox More than meets your experience
游客

返回顶部