文章来源:https://www.runningcheese.com/trouble-shooting,作者:奔跑中的奶酪

假如电脑出问题了,该怎么办?

我听过最为简洁的解决方法是:重启电脑解决90%的问题,重装电脑解决99%的问题,重买电脑解决100%的问题。

那如果要是浏览器出问题了,该怎么办呢?

同理,我们可以推出结论:重启浏览器解决90%的问题,重装浏览器解决99%的问题,换用同类浏览器解决100%的问题。

浏览器为什么不能卸载(别再卸载和重装了)(1)

可问题是,事情都是有代价的,这些解决方法越往后面,要付出的代价就越大,所以这个值得讨论问题。

一、分解问题可以将问题简单化

两宋时期,我国海上贸易空前繁盛,船只运输的安全性备受关注。水能载舟,亦能覆舟,船虽然能自如地漂浮在水面上,但船只一旦出现破损,水入船舱,如不能及时堵住漏洞,最终就会沉没。

在内陆河流的船只,如果船体破损还可能来得及靠岸修理,但如果是在茫茫大海上,就只能坐以待毙。正是出于对航行安全的担忧,中国人民发明了「水密隔舱」技术。——【引用自中国数字科技馆】

浏览器为什么不能卸载(别再卸载和重装了)(2)

(水密隔舱 ↑)

水密隔舱技术被认为是我国的第五大发明,它在现代船舶设计中依然占有十分重要的地位。泰坦尼克号作为当时世界上最大的轮船,有着“永不沉没”的美誉,也同样采用了水密隔舱技术,然而不幸的是,在它的第一次航行中,泰坦尼克号主撞击冰山沉没了。

倒不是说水密隔舱技术不起作用了,而是泰坦尼克号作为当时世界上最大的轮船,船长无比骄傲,轮船高速行驶撞击冰山,把所有的水密隔舱都划破了。有学者计算,只要速度稍微慢一点,即使 4 个水密隔舱都被划破,泰坦尼克号也不至于沉入海底,可偏偏 5 个全划破了。

我们可以意识到,水密隔舱对于大型船只的建造是多么的重要。

浏览器为什么不能卸载(别再卸载和重装了)(3)

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

水密隔舱是一种将问题分解的思维,它可以将大问题分解成一个个小问题,将复杂问题分解成一个个简单问题,将整体问题分解成一个个局部问题。这样一来,一旦出现问题,也不至于牵一发而动全身。

二、软件里的“水密隔舱”

也就是说,在设计事物时,我们应该将可能发生的问题分解为多个部分,使它不会因为一个小问题而导致全盘出错。

在大型软件的设计上,水密隔舱的思维也同样得到了运用。比如浏览器不同功能模块的数据,会被储存在不同的文件上,如果哪个地方出错,我们只需要修复出错的数据文件就可以了。

下面是 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 :用户首选项。(限制某些用户首选项被修改)

浏览器为什么不能卸载(别再卸载和重装了)(4)

2、Chrome 浏览器:

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

[ Extensions ]:拓展文件夹。

[ IndexedDB ]:拓展数据文件夹。

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

Bookmarks:当前使用中的书签。

Bookmarks.bak:自动备份的书签。

Cookies:Cookies 存储。

Favicons:书签图标。

Login Data:浏览器登录。

History:浏览记录和自动完成历史。

Preferences:用户首选项。

Shortcuts:自定义快捷键。

Web Data:搜索引擎列表。

浏览器为什么不能卸载(别再卸载和重装了)(5)

三、浏览器升级和故障排除方法

如何在更新浏览器的同时保留原来的数据

1、Firefox 升级方法:

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

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

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

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

,