从其初次登场以来,
Firefox就 通过它的插件架构和内部设置中大量可自定义程序而赢得了名声。实际上,很多
Firefox的设置都没有通过“工具>选项”菜单直接可得,而想要对它 们进行更改的唯一方式就是手动地编辑。在这篇文章中,我们将探索一些你可以自行更改的Firefox中最为实用的设置,而这些都并不是平常通过程序的图象 化界面就能够做到的。 与Firefox管理其内部设置最为相似的就是Windows注册表。每项设置都有一个以字符串、整数或布尔值存储的名称。然而,Firefox并没有将 同的设置保存在注册表中,而是在一个名叫prefs.js的文件中。你可以直接编辑prefs.js文件,但它通常都能够通过浏览器窗口更为简易地作出更 改。
在地址栏中输入“about:config”并按下回车键,你就会看到当前在prefs.js中的所有设置,它们会按照首字母的顺序列出。要将这数百项配置选项的范围所见到你所需要的量,只需要在“过滤器”栏中输入一个搜索项目。(
点击“全部显示”按钮或将“过滤器”栏中的字清除则能够再次回到完整的列表中。)
![Firefox 高手设置大揭密_FireFox](http://publish.it168.com/2007/0607/p_w_picpaths/468303.jpg) |
图1 about:config页面(点击看大图) |
要对其中的项目进行编辑,只需要双击其名称,此时你就会被提示输入新的值。如果你双击任意具有布尔值的条目,那么它就只会在true或false之间进行 反向切换;再次双击就能够恢复到原始的设置。并非所有的更改都能够即时生效,因此如果你想要完全确保特定的更改生效,那么应该在作出更改之后将 Firefox关闭并重新开启。
![Firefox 高手设置大揭密_休闲_02](http://publish.it168.com/2007/0607/p_w_picpaths/468304.jpg) |
图2 编辑一个项 |
要注意的是,在about:config中的设置并非每项都是默认的。有一些是必须手动创建的。如果你想要添加一个新的首选项,那么你可以在页面中任意地方右键点击鼠标并选择“新建”,接着选择你想要创建的项目类型(字符串、整数、布尔),并输入名称和值。
准备工作
在你探索和操作时,有一些警示需要你谨记。
并非所有人都能够通过这些操作获益,特别是在更改网络设置的时候。例如,如果你经常会浏览一些不允许来自一个客户端的大量连接的网站,那么当你提升对
服务器的连接数时则收不到太多的效果。
有些修改是有一定的有效期限的。随着每个Firefox版本的发布,需要更改的与性能相关的配置设置(例如网络设置)则会由于Firefox很更根据用户的使用反馈作出自我改进而减少。总之,现在有效的设置在将来未必有效——但这并不是一件坏事。
对你所作出的一切更改都保留记录,或者是进行备份。如果进行了某些修改,而在一周内发现有一些异常,你也许会想要能够回到修改之前的状态。Firefox确实能够显示about:config被作出的手动更改,但这并不能准确地找到你所更改的地方。
要对你在Firefox中的选项进行备份,只需要对prefs.js文件作出一份拷贝即可,它保存在Firefox的配置文件目录中。如果你弄糟了一些东 西,你也总是能够通过将这个文件复制回去来进行恢复。在你复制prefs.js文件或将其复制或移动回配置文件目录时请切记要关闭Firefox。
在Windows XP中,配置文件目录是:
\Documents and Settings\<username>\Applic
ation D
ata\Mo
zilla\Firefox\Profiles\<profile ID>.default\
在Windows Vista这个文件夹则位于:
\Users\<username>\AppData\Roaming\
Mozilla\Firefox\Profiles\<profile ID>.default\
要注意的是,Appli
cation Data和AppDate在默认情况下是隐藏的,因此除非你让Explorer显示隐藏对象,否则它们是无法显示出来的。
在Mac OS X中,配置文件目录是:
/Library/Application Support/Firefox/Profiles/<profile ID>.default/
~/.mozilla/firefox/<profile ID>.default/
但在这些平台中,你都能够通过搜索prefs.js这样的方式来更容易地找到。
此外,你还可以使用更为方便的Firefox Extension Backup Extension(FEBE)。它不仅能够备份prefs.js文件,还能够将所有Firefox中的其它东西,包括扩展、主题、coo
ies、表格历史等等都备份出来。
加速页面显示
最近我看到的一些关于
Firefox的定制都是关于加速网页的渲染引擎的。这些设置方式都有些灰色难懂,且并不是非常能够一眼明了的,但只要作出一点点修补,你就常常都能够让页面弹出的速度加快并且在刷新它们的时候也能够少浪费很多时间了。
页面渲染更迅速
创建一个nglayout.initialpaint.delay整数项能够让你控制Firefox在开始提交一个页面之前的等待时间长度。如果这个值没 有被设置,Firefox则会默认为250毫秒,或者说是0.25秒。一些人则将其设置为0,也就是迫使Firefox立即提交页面——让几乎所有的页面 能够更快地显示出来。当值设置为50时,效果就已经非常良好。
减少“回流”的数目
当Firefox正在积极地载入一个页面时,载入过程中它会周期性地重新安排格式或者是产生页面的“回流”。创建一个 content.notify.interval整数项能够控制回流之间逝去时间的最小百万分之一秒的数值。如果没有进行特别的设置,其默认值为 120000,也就是0.12秒。
太多的回流会让浏览器变得迟钝,因此,你可以通过将这个数值提升到500000,也就是二分之一秒,甚至是1000000,即1秒来增加回流之间的间隔时 间。如果你有设置这个值,那么请确保同时创建一个布尔值,名叫content.notify.interval,并将它的值设置为true。
控制Firefox的“无响应”时间
当一个页面正在提交的时候,Firefox的内部会周期性地略微加速运行,以提升页面提交的过程,但因此而需要付出的代价就是用户一段时间的输入无响应。 如果你想要设置这类型的无响应周期的最大时间长度,那么就可以创建一个名叫content.max.tokeni
zing.time的整数项。
将此整数项的值设置为content.notify.interval值的倍数,甚至可以与其值相同,但高一些要更好。如果你将其值设置得比 content.notify.interval的值更低的话,浏览器能够在页面被提交时更经常对用户的输入响应,但页面本身的提交则会更为缓慢。
如果你为content.max.tokenizing.time设置了一个值,你也需要创建两个布尔值——content.notify.ontimer和content.interrupt.parsing,并且二者的值都为true。
控制Firefox的“强响应”时间
如果Firefox正在提交一个页面时用户进行一些操作,例如在一个正在载入的页面上滚动鼠标,Firefox则会为响应用户输入留存一段周期的时间。想要控制这段间隔的长度,则可以创建一个名为content.switch.threshold的整数项。
它的值通常是content.notify.interval值的三倍,但我通常都将其设置为相等的值。如果将它的值设置得非常低,例如10000,这样浏览器也许不会在响应的方面表现非常好,但它能够让提交的完成更为迅速。
如果你还没有创建布尔值content.notify.ontimer和content.interrupt.parsing并将二者的值设置为true 来关联content.max.tokenizing.time,那么你将需要进行这个操作来让content.switch.threshold能够正 常地工作。
如果你更像在页面完成载入之前尝试一些操作,例如滚动页面,你就可以将content.max.tokenizing.time的值设置得高一些来让其处 理用户的命令。从另一方面来说,如果你希望在页面完成载入之前就能够滚动页面并开始阅读的话,你可以将 content.max.tokenizing.time设置一个较低的值,而将content.switch.threshold设置为一个较高的值, 用牺牲一些页面提交的速度来换取更高的响应。
拥有你自己的标签浏览方式
从一开始,标签浏览就是
Firefox的一个长处。但如果在默认情况下,标签浏览并不是很符合你喜欢的方式,或者是它草Firefox 1.x以来默认方式是你所不喜欢的,那么以下的一些更改就能够让它们更符合你的想法。
控制关闭按钮
browser.tabs.closeButtons整数项能够控制标签页上的关闭按钮:
0:仅在当前活动标签页显示关闭按钮。这样能够很好地避免偶然点错了关闭按钮而错误地关闭了页面。
(你可以按下Ctrl+F4来关闭当前标签页,但用惯鼠标的人们却很少会这样使用。)
1:在所有的标签页上显示关闭按钮(默认方式)。
2:不显示任何关闭按钮;仅能够通过按下Ctrl+F4来关闭标签页。
3:在标签栏末显示一个关闭按钮(Firefox 1.x所默认的)。
在新的标签页中打开搜索结果
这是我最喜欢的一项设置。当布尔项browser.search.openintab设置为true时,任何从搜索工具栏中的搜索结果都能够在新的标签页中打开,而不是直接覆盖当前的页面。在我没有使用此项设置之前,我已经无数次错误地清除了当前正在浏览的页面。
要注意的是,如果你使用Ctrl+N来进行搜索而打开一个新的浏览器窗口,你将会看到搜索结果以及默认的主页在新的浏览器实例中分别以不同的标签页进行载入。
在新的选项卡中打开书签组
如果你一次打开一组的书签,Firefox默认的操作是使用新打开的页面来替换任何当前的标签页。将布尔项 browser.tabs.loadFolderAndReplace的值设置为false,打开一组标签时则会添加新的标签页来打开,而不会替换当前的 页面。
让标签栏能够挤进更多的标签
整数项browser.tabs.tabMinWidth是以象素为单位,在滚动箭头出现在标签栏左右边缘之前控制标签的收缩程度的。
默认值为100,但你可以将它设置得小一些,这样你就可以让标签栏上一次性容纳更多的标签。要注意的是,这样以来你就会发现标签的标题会变短,有些难以阅读。
![Firefox 高手设置大揭密_休闲_03](http://publish.it168.com/2007/0607/p_w_picpaths/468290.jpg) |
图3 缩减最小标签宽度前后的标签栏对比(点击看大图) |
In the same vein,整数项browser.tabs.tabClipWidth则是以象素为单位,设置标签能够显示关闭按钮的最小宽度。140是它的默认值,因此,如果你将其调低,你就会在标签栏中打开很多标签时看到更多带有关闭按钮的标签。
定制用户界面的表现
人们修改
Firefox设置的一个很大的理由就是为了修改用户界面,有的是为了在进行一些操作的时候更为简便,有的是将一些在1.x版本中很普遍使用而在2.0版本中被更改的东西转换回来。
获得有大小写之分的页内搜索
整数项accessibility.typeaheadfind.
casesensitive是控制让Firefox按照你所输入的进行搜索的特性。默认值为0表示不区分大小写的搜索;如果将其改为1则更改为区分大小写。
控制地址栏搜索
你也许注意到,如果你在Firefox的地址栏中输入一些并不是一个地址的东西,例如一个关键词,Firefox通常会将其提交给
Google进行搜索。 而实际的搜索引擎的定义字符串是keyword.URL;如果你想要将其更改为它的搜索引擎,你只需要对这个字符串进行修改即可。
最后,如果你想让这个地址栏关键词搜索的功能完全关闭的话,则将布尔项keyword.enabled设置为false。
只选择一个词
布尔项layout.word_select.eat_space_to_next_word掌控的是Firefox中一项及其微小,但对于我来说却是相 当厌烦的东西。当你在一个页面上双击你所选中的词,Firefox会自动地在这个词的后面添加一个空格。大部分时候我都不需要这个;我只是想选中这个词而 已。将这个值设置为false则能够省却这个麻烦。
选择一个词和它的标点
有些相反的是,如果你双击一个在任意标点符号旁的词,Firefox默认情况下则只会选中这个词,而不会将其临近的标点一起选中。将布尔项layout.word_select.stop_at_punctu
ation设置为false则能够在选这个词的时候连同标点一起选中。
再获得Alt相关的热键
在Firefox 2中对网页上的表单所关联的热键作出了一些小小的改动。在Firefox 1.x中,当一个网页对一个表单组件指定热键时,你按下Alt相关的热键就能够做到。在2.x版本中,这则变更为Alt+Shift的热键。要将其改为 1.x版本中的方式,则可以将整数项ui.key.contentAccess的值设置为4。这样的话,在很多情况下都会非常实用,例如,你在一个基于 Web的界面上花费很多时间的时候,使用Alt相关的热键就能够在特定的页面上更快的进行操作。
要注意的是,将其设置为原先版本的Alt相关热键可能会时程序本身的一些热键失效,例如使用Alt+S打开历史记录,但这个问题很容易解决,你只需要按下Alt打开菜单接着再按下程序对应的热键即可。
更改滚动条的表现
在默认情况下,
点击Firefox 窗口中滚动条的空的区域只会让你在一个页面中向上或向下查看。你可以通过创建一个名叫ui.scrollToClick的布尔项并将其值设置为true来 进行更改。现在,点击滚动条将能够直接让你调转到页面上你想要查看的那点,就等同于将滚动条拖动到那个位置。
获得“点击并保持”(click-and-hold)上下文菜单(仅在Mac上有效)
如果你想要在Macintosh上重新获得点击并保持的上下文菜单,那么你可以编辑或创建布尔项ui.click_hold_context_me
nus并将其值设置为true。
修改网络连接
我最初知道的关于
Firefox的 修改就是如何让它的默认网络设置无效。一些处理Firefox网络连接的修改都相当保守,也许是因为Firefox没有办法知道它所使用的网络类型,究竟 是拨号还是宽带等等。如果你使用的网络能够稳定地支持多线连接,那么你就能够对Firefox进行多处修改来更好地使用它。
但操作过程还是必须谨慎。如果Firefox的网络设置被修改地太过头,它们可能会让你被某些远程的
服务器短时间地拖入黑名单。当然,如果你是要在公司的网络环境中做这样的修改,你还必须先征得公司IT部门的许可。无论怎样,适可而止。在大多数的时候,我发现对网络连接设置过头并不能收到任何效果;它仅能够起到一些辅助作用,但通常都不会有非常显著的效果。
最大化到多个服务器的连接数
整数项network.http.max-con
nections就是控制Firfox在任意时间连上任意数量
网络服务器的网络连接线程数。这项设置收效的典型方式就是,设置Firefox一次在不同的标签页中载入主页,或者是在你访问页面能够从几个不同的服务器聚集内容,例如,多个广告系统。
在默认情况下,这个值是24,这在大多数网络连接中都能够良好地工作,但你可以将这个值提升到32来看看是否有不同效果。我曾经看到有人将这个值设置为64,但任何超过32的值似乎都不能提供更好的效果。
最大化到单个服务器的连接数
整数项network.http.max-connections-per-server是控制Firefox对单个服务器的单独连接数量,这样能够让一个页面中的多个组件同时进行下载。在通常情况下,其值为8,但有的人会将其设置为16。
要注意的是,有些网络服务器会在你试图使用超过8个入站连接时进行阻止,通常是作为贷款保护或者是反吸血标准——这通常会在试图尽可能使用多的接口来提升 下载速度时出现,而许多服务器的管理员都不喜欢这样的方式。同时,如果你的连接本身就不快,比如使用ISDN或者是拨号,那么更改此项设置是没有任何效果 的,甚至可能还会让速度变慢。
提升对每个服务器的持续连接数
Firefox会对一个服务器保持持续的连接来提升性能:并不仅仅是发送一个请求后就关闭,它们会保持开放,这样多个请求就能够往返地发送。这也就意味着 总体更少的网络流量,因为对一个特定服务器的连接只需要建立一次,而不是每部分独立的内容都需要建立一次连接;这也意味着之后到相同服务器的连接会更加迅 速。
整数项network.http.max-persistent-connections-per-server是用来控制允许到每个服务器的持续连接 数。在默认情况下,其值为2,而有一些服务器能过承受更多的持续连接数,例如一个网站上有很多的图象或其它框架内容需要同时载入。但你可能只能够将其提高 到8,因为超过这个数字的话可能会让这个服务器根据它的设置,将你的IP地址暂时地拖入到黑名单中。如果你通过Firefox的代理进行访问,则使用 network.http.max-persistent-connections-per-proxy来替代这项设置。
减少持续连接之间的间隔时间
如果你已经对上述的持续服务器连接数进行了更改,而又希望Firefox能够有更多次的连接的话,整数项network.http.request.max-
start-delay则是控制试图打开新连接之前需要等待的时间长。这能够在Firefox持续连接限制已经被提升的情况下再增加一些下载量。
很多人将这个值设置为0,而默认值是10。注意,这不能影响到远程主机所限定的连接限制,因此它的作用也取决于你所连接到的服务器。
打开流水线操作
布尔项network.http.pipelining能够启用一项体验加速的技术,名叫“流水线操作”,它能够加速网页的载入。浏览器通常都会在你发送 一项请求到一个服务器与发送下一个请求之间等待一段时间,而流水线操作则能够一次发送多个请求,而不需要每次都等待响应。
如果你将其开启,也就是将值设置为true,也必须记得创建或编辑整数项network.http.pipelining.maxrequests,它是 控制一次进行流水线操作的请求最大数量。16就能够达到目的了,一些人将其值设置为128,但这样并没有任何帮助。如果你使用的是代理,那么同时还要将 network.http.proxy.pipelining的值设置为true。
要注意的是,并不是每个服务器都能够正确地处理流水线操作的,这也就是为什么此项特性在默认情况下是关闭的,这是经过一定考虑的。甚至有一些网站在你提交了流水线请求时会产生异常。
停止对内存的攫取
如果你不知道究竟哪些东西在运行的话,Windows版的
Firefox的 默认方式消耗内存是惊人的。人们通常会发现,在一些窗口或标签页打开时,内存会被消耗掉75 MB到100 MB甚至更多,而他们则认为内存泄漏需要负上责任。虽然早先版本的Firefox也有内存泄漏的bug,但在Firefox 2.x版本中,它则不应是如此大量内存消耗的原因。
其实真正的原因是这样的:Firefox会对最近使用过的对象进行缓存,包括网页、图像,而它们都被缓存在内存中,这样它们在重新提交时就能够很快地出现在
屏幕上,这就导致了内存占用量的上升。以下的一些技巧能够让Firefox对内存不那么具有侵略性。当然,减轻内存负担就可能会让你再次载入之前页面的时候更为缓慢一些。
减少对图像的缓存
当布尔项browser.
cache.memory.enable启用的时候,也就是默认情况下,Firefox则会将当前浏览到的网页中所有的图像元素复制到内存中,以让页面更快地提交。你可以将其值设置为false来降低内存占用,但历史纪录中的页面重新载入时就会稍微慢一些。
另一种办法:将其值设置为true并创建一个新的整数项,名叫browser.cache.memory.capacity。接着以千字节为单位,指定内 存为图像缓存的留出量。这样你既能够享受到图像缓存所提供的速度又无须耗费巨大的内存占用。如果你使用-1作为内存的值,Firefox则会根据你的物理 内存大小自行分配内存缓存。
减少对网页的缓存
Firefox会将一些最近访问的页面缓存在内存中,这样当你按下“后退”或“前进”时就不需要重新生成页面。整数项browser.sessionhistory.max_total_v
iewers则决定了存储在后退/前进缓存中的网页数;每个页面则大约占用4 MB的内存。
在默认情况下,其值被设置为-1,这样就是根据你的物理内存大小来进行分配;当你使用-1值时,存储页面的最大数量为8。将值设置为0则是完全禁用页面缓存。这能够节约内存使用,但会在你后退或前进导航时速度有些变慢。
要注意的是,这项缓存并不与browser.cache.memory.enable一样,那项设置是用来控制提交页面中像图像和按钮这样的组件以及http编码方式的页面内容的,而这项设置则是缓存已经被提交的页面中的文本内容。
当最小化时用磁盘空间换内存空间(仅在Windows中可用)
在Firefox中有一个鲜为人知的功能就是,Windows内存管理器能够在Firefox最小化但没有关闭时用磁盘空间换出一些Firefox的物理内存占用。这样能够让其它的程序使用到Firefox之前所占用的物理内存。
但在默认情况下,这项功能是关闭的,有两个原因:1)计算机内存通常都比使用量要多得多,因此如果平时都能够使用并不是非常有意义;2)将Firefox的内存占用换出到硬盘空间,当其还原大小时可能会让程序运行变得缓慢。
这也就是说,如果你在运行Firefox时也运行一些对内存需求非常大的应用程序,这项功能也许就能够帮助你在它们之间进行权衡。要启用这项功能,可以创建一个名叫config.trim_on_minimi
ze的布尔项并将其值设置为true。