奔跑中的奶酪

解决浏览器出问题的终极奥义

导读

解决浏览器出问题的终极奥义

常言道,电脑出问题了怎么办?重启电脑解决90%的问题,重装电脑解决99%的问题,重买电脑解决100%的问题。这是多么让人清醒的名言警句啊!可如果要是软件出问题了,该怎么办呢?

同理,重启软件解决90%的问题,重装软件解决99%的问题,换用同类软件解决100%的问题。可问题是,重启、重装、换用谁不会呢?能用这三个方法解决的问题,根本就不是问题。那么,解决问题的终级奥义是什么?

一、解决问题的终级奥义

解决问题的终级奥义是分解问题。把大问题分解成一个个小问题,把复杂问题分解成一个个简单问题,逐一解决分解后的问题,最终解决最开始要解决的问题。

早在两宋时期,海上贸易空前繁盛,船只运输的安全性备受关注。水能载舟,亦能覆舟。船虽然能自如地漂浮在水面上,但普通船只一旦船体破损,水入船舱,如不能及时堵住漏洞,最终都会沉没。如果船体破损,在内陆河流中有时还来得及靠岸修理;如果是在茫茫大海上,就只能坐以待毙。正是出于对航行安全性的担忧,促使中国人发明了「水密隔舱」技术。【引用自中国数字科技馆】

水密隔舱

(水密隔舱 ↑)

水密隔舱技术被认为是我国的第五大发明,技术领先于西方1000多年,在现代船舶设计中依然占有十分重要的地位。当时世界上最大的轮船,泰坦尼克号也采用了水密隔舱技术,有着“永不沉没”的美誉 。然而不幸的是,在它的处女航中,泰坦尼克号便撞击冰山沉没。

按理说,有水密隔舱技术,再怎么撞也不至于沉没,可能泰坦尼克号做为当时世界上最大的轮船,船长无比骄傲,轮船高速行驶,撞击冰山,把所有水密隔舱都划破了,有学者计算,只要速度稍微慢一点,泰坦尼克号都不至于沉入海底,我们可以意识到水密隔舱对于大船制造是有多么的重要。

泰坦尼克号沉默

(泰坦尼克号沉没演示图 ↑)

也就是说,解决问题最好方法是在事先设计时,将可能发生的问题分解为多个部分,以使得它不会因为一个小问题再导致全盘出问题。

二、软件上的水密隔舱思维

水密隔舱的思维,在大型软件的设计上也同样得到了体现,比如浏览器上的沙盒安全技术就是如此。除此之外,大型软件的数据储存也同样运用了水密隔舱思维,比如浏览器不同模块功能的数据被储存在多个文件上,这样一来,如果某个地方出错,我们只需要覆盖出错了的数据文件就行了。下面是 Firefox 和 Chrome 常见的用户数据保存文件。


1、Firefox 浏览器:
在浏览器地址栏输入 about:profiles 即可查看配置文件所在位置。以下是部分配置文件说明:

[ bookmarkbackups ]: 自动备份的书签文件。
[ chrome ]: UC脚本文件夹。
[ extensions ]: 拓展文件夹。
[ storage]: 拓展数据文件夹。

places.sqlite : 书签、下载记录和浏览记录。(可以用来恢复书签)
favicons.sqlite: 书签图标。(可以用来恢复书签图标)
key4.db 和 logins.json: 浏览器登录。(如果分享配置给他人,一定要删除)
permissions.sqlite 和 content-prefs.sqlite: 网站权限设置。(比如网站的弹窗、缩放级别等)
search.json.mozlz4: 搜索引擎列表。
formhistory.sqlite: 自动完成历史。(搜索框的输入历史)

cookies.sqlite: Cookies 存储。(网站首选项和登录状态等信息)
webappsstore.sqlite: DOM 存储。(比 Cookies 更大更安全的储存信息)
handlers.json: 安全证书设置。
sessionstore.jsonlz4: 下载动作设置。(打开某个文件时 Firefox 应该做的动作)
xulstore.json: 会话保存。(保存当前打开的标签页)
cert9.db: 自定义工具栏。(窗口和工具栏的位置、大小)
prefs.js: 用户首选项。(保存修改过的用户首选项设置)
user.js : 用户首选项。(限制某些用户首选项被修改)

Firefox 配置文件说明



2、Chrome 浏览器:
在浏览器地址栏输入 chrome://version 即可查看配置文件所在位置。

[ Extensions ]: 拓展文件夹。
[ IndexedDB ]: 拓展数据文件夹。
[ Local Extension Settings ]: 拓展数据文件夹。(本地)

Bookmarks: 当前使用中的书签。
Bookmarks.bak: 自动备份的书签。
Cookies: Cookies 存储。
Favicons: 书签图标。
Login Data: 浏览器登录。
History: 浏览记录和自动完成历史。
Preferences: 用户首选项。
Shortcuts: 自定义快捷键。
Web Data: 搜索引擎列表。

Chrome 配置文件说明

三、浏览器故障排除及更新方法

1、浏览器故障排除方法:

因为浏览器功能和数据库的相对独立,当浏览器出问题时,我们可以通过尝试禁用一些拓展或者脚本进行排查,方法如下:

(1),禁用用户样式类拓展,比如 Stylish,xStyle,Stylus 等。
(2),禁用用户脚本类拓展,比如 ViolentMoneky,Tampermonkey,Greasemonkey 等。
(3),禁用重定向类拓展,比如 Redirector,Header Editor,Modify Headers 等。
(4),禁用广告过滤类拓展,比如 Adblock Plus,Ublock Origin,广告净化器 等。
(5),禁用代理类拓展,比如 Proxy SwitchyOmega,Smart Proxy 等。
(6),如果都不行,则尝试禁用所有浏览器拓展。
(7),如果是 Firefox 浏览器,则还可尝试禁用 UC 脚本,可将 chrome 文件夹名称改成其他的,然后重启。


2、Firefox 更新及转移方法:

奶酪每次发布新版本的 RC Firefox 和 RC Chrome 浏览器时,经常有人询问更新方法,通常全新下载是肯定没有问题的。但如果你有自己的修改内容,运用水密隔舱思维,只需要修改其中部分的文件就可以了。

如果更新内容较少:(即如果有声明是小幅度更新)
点击“火箭图标—>更新修复—>自动更新” 即可自动更新,无需下载安装包。奶酪写的这个自动更新程序,也正是运用水密隔舱思维,对修改文件进行指定更新。

如果更新内容较多:(即如果有声明建议全新下载)

(1),下载解压新版本的压缩包,登录 Firefox 帐号,书签就会自动同步,拓展和用户脚本建议手动更新,同步容易出错。
(2),转移旧版书签和历史记录,覆盖 places.sqlite 到新版的同名文件。
(3),转移后的书签图标是空白的话,覆盖 favicons.sqlite 到新版的同名文件。
(4),转移旧版搜索引擎列,覆盖 search.json.mozlz4 到新版的同名文件。
(5),如果你有自己的内容修改,建议备份保存修改内容,然后再重新添加到新版本里去。



3、Chrome 更新及转移方法:

当你登录 Google 帐号时,Chrome 浏览器会询问当前配置是否是你的配置。选否的话,当前配置就会清除,选是的话,当前配置会并入你的帐号中。

(1),转移旧版书签,覆盖 Bookmarks 到新版的同名文件。
(2),转移后的书签图标是空白的话,覆盖 Favicons 到新版的同名文件。
(3),转移旧版搜索引擎列,覆盖 Web Data 到新版的同名文件。
(4),转移旧版快捷方式,覆盖 Shortcuts 到新版的同名文件。
(5),转移旧版用户设置,覆盖 Preferences 到新版的同名文件。
(6),如果你有自己的内容修改,建议备份保存修改内容,然后再重新添加到新版本里去。

结尾

1、本文由 奔跑中的奶酪 原创创作,欢迎 打赏,欢迎转载,但要注明出处,欢迎订阅关注,欢迎留言评论。
2,欢迎关注奶酪 公众号(ID: runningcheese01)订阅博客里没有的内容,以及奶酪所有原创资源下载。
3,欢迎订阅我的 “奶酪书签专业版”。(15年沉淀,超过3000多个分类井条有序的好用实用网站 html 书签)

注:本文由 奔跑中的奶酪 作者:奔跑中的奶酪 发表,其版权均为作者所有,如需转载,请注明作者名字以及文章来源。
1

发表评论