在 Mac OS X Lion 中停止 Safari 自动刷新网页
Mac OS X 10.7 中 Safari 5.1 的新增功能是网页自动刷新如果他们在一段时间内处于非活动状态。该功能似乎没有必要,甚至令人讨厌,但没有明确的首选项来禁用页面重新加载。幸运的是,Stormcloud(通过 DaringFireball) 向我们展示了如何在 Safari 5.1 中阻止这种讨厌的行为。这是禁用它的逐个播放:
- 退出 Safari,然后启动终端(位于 /Applications/Utilities/)并输入以下命令
- 重新启动 Safari,您会看到“调试”菜单出现在最右侧,旁边是“帮助”(是的,这与“开发”菜单不同)
- 下拉新的“调试”菜单并向下滚动,直到您看到“使用多进程 Windows”并选择它以取消选中
- 打开一个新的 Safari 窗口,如果您在网页标题旁边看到 [SP],则您现在处于单进程模式,这会阻止网页自动刷新
默认写入 com.apple.Safari IncludeInternalDebugMenu 1
如果您想知道为什么更改某些称为“多进程窗口”的设置会影响网页的自动重新加载,Stormcloud 提供了有关此功能及其工作原理的很好的描述:
那么什么是“多进程窗口”呢?
Safari 5.1 的新功能之一是底层引擎的主要新版本——WebKit2。在 WebKit2 的新进程架构下,Safari 由两个独立的进程组成——“UI 进程”(Safari 应用本身,包括地址栏、工具栏、书签栏、菜单等)和“web 进程”(一个独立的进程加载和显示实际网页)。
除了其他目标之外,这样做的目的是提供一些崩溃保护措施。虽然它确实可以防止整个 Safari 应用程序崩溃(至少据我所知),但它不能防止您丢失在网页文本字段中输入的任何内容。所有网络内容都由一个网络进程处理,因此如果任何页面出现故障并导致网络进程崩溃,所有打开的选项卡都将重新加载,您在这些页面中输入的任何内容都将丢失。此外,任何正在进行的下载也将停止;您也许可以恢复某些下载,但许多下载必须重新开始。下载大文件时,这可能会非常令人沮丧。
因此,新的多进程架构的好处有些可疑,至少在 Apple 设法解决自发重新加载选项卡的问题之前(假设甚至可以在不重新设计 WebKit 的整体架构的情况下防止这种行为) ).
基本上,这是一个用心良苦的功能,但也让一些用户头疼。在某些情况下,它会导致 Safari 占用比应有的多得多的内存,甚至会导致应用程序变慢。不过,大概所有这些都将在软件更新中得到修复。
关于在单进程模式下运行 Safari 5.1 的重要警告:许多插件和扩展不起作用,最值得注意的是(并且令人讨厌)广告拦截器、ClickToFlash 和 1password。您必须决定这种权衡是否值得,或者您也可以始终只使用 Chrome 或 Firefox。