如何防止 Firefox 中加载后台标签?

如何防止 Firefox 中加载后台标签?

我正在寻找 Firefox 中的“在选择之前不加载选项卡”选项所承诺的内容。

当 Firefox 设置为在启动时加载上一个会话中的选项卡时,该选项似乎工作正常。只有前台选项卡才会加载,所有其他选项卡只有在我选择它们时才会加载。对于所有其他情况,后台选项卡始终会立即加载。(测试场景:在后台加载转移的选项卡,在文件夹中单击鼠标中键打开多个书签)

我想要的是一个设置、插件或greasemonkey脚本,可以防止在后台打开的每个选项卡加载。

或者甚至更好:如果只打开了一个背景选项卡 - >加载它,如果在短时间内在后台打开了多个选项卡 - >阻止加载。

编辑:

我的问题与这个问题略有相关:启动浏览器时防止 Firefox 自动加载标签页 他们寻找一些在开始时就能起作用的东西,但这已经通过“在选择之前不加载选项卡”选项实现了。

2022 年更新:
以下解决方案(2016 年提供)均不再有效。目前(2022 年)有没有什么方法可以“防止 Firefox 加载后台标签”

答案1

回复此部分:

2022 年更新:

以下解决方案(2016 年提供)均不再有效。目前(2022 年)有没有什么方法可以“防止 Firefox 加载后台标签”?

由于它似乎在 2023 年末仍然具有相关性,而且我一直在寻找类似的东西,所以基本上只是与通过搜索引擎找到这篇文章的人分享我迄今为止的笔记。

~~遗憾的是,我没有看到很多about:config用于控制是否在加载状态下打开后台标签的选项……~~那里一些内置的东西但似乎记录不全。请参阅本文末尾的注释以获取更多详细信息和链接。

至于插件,有很多选择。我马上就要说,我的用例比 OP 的用例要广泛得多,但我会回到那个用例(滚动到列表的后面)。换句话说,此列表中的一些内容与丢弃/暂停/卸载的选项卡有关,但不会自动应用。还有一些插件,如 LoadTabOnSelect 3,没有 FOSS 许可证(例如“保留所有权利”),我对此完全不感兴趣,只是公然忽略。我可能错过了一些(或者可能会出现新的),所以不要认为这是 100% 全面的,只是比平时更彻底。

最后,除了 Tabhunter 和 BulkURL 之外,我还有不是我自己测试过这些,所以其中有些可能比其他的更好。我不打算维护这个列表,但如果有什么值得添加的,我可能会在测试完一些之后再回来——我现在就发布,以免我忘记或偏离主题。

与标签丢弃相关的 FOSS 附加组件表:

警告其中大多数(尤其是自动丢弃类型的,而不是 Bulk URL Opener / Tabhunter / 仅添加上下文菜单选项的)可能会相互冲突。如果您打算尝试多个,我建议您在任何时候禁用除其中一个之外的所有程序,然后独立于其他程序进行测试。

添加在 最近更新时间 执照 # 用户 公开回购 笔记
自动标签丢弃功能(作者:tlintspr) 2022 年 12 月 17 日 MPL 2.0 61,694 github 看起来有很多选项,包括在可配置的秒数后丢弃不活动的标签(以及许多其他选项)。预览
Chris Trotman 的 Auto Tab Reaper 2020 年 12 月 29 日 麻省理工学院 22 github 自动丢弃标签,跳过固定和可听的标签。默认延迟 30 分钟,但可配置为 1、5 和 10 分钟。
Euan 的批量 URL 打开器 2022 年 6 月 19 日 麻省理工学院 3,979 github 打开从剪贴板粘贴的 URL。在插件设置下有一个选项“延迟选项卡加载,直到选择选项卡”
放弃 freddyb 的标签 2018 年 12 月 1 日 MPL 2.0 287 github 允许通过右键单击丢弃标签
放弃 Sergey Vlasov 的标签 2020 年 8 月 6 日 MPL 2.0 33 github 分叉通过 Js 卸载标签使用 Alt+U 快捷方式和选项卡上下文菜单
迪特里希·阿亚拉 (Dietrich Ayala) 的《休眠》 2019 年 1 月 9 日 MPL 1.1 262 github 每 x 分钟丢弃一次标签页(默认值:10)。说明中未提及,但代码(background.js)似乎排除了固定标签页、有声标签页和用户可配置的网站。
Mikhail Vyrtsev 的 HoldTab 2017 年 10 月 20 日 北达科他州 125 github 延迟新标签页加载,直到您激活它
martin 的懒人标签 2021 年 7 月 3 日 GPL 3.0 二十八 不适用 打开暂停(丢弃)选项卡中的链接并暂停选定的选项卡(从右键单击上下文菜单中)
限制活动标签页(igorlogius 提供) 2023 年 8 月 2 日 北达科他州 24 github 通过卸载较旧的选项卡(由上次激活的选项卡决定)来限制活动选项卡的数量
kgersen 的延迟加载背景标签 2023 年 9 月 18 日 MPL 2.0 414 不适用 一次只允许加载特定数量的新背景标签。
在选择时加载背景标签(作者:igorlogius) 2023 年 9 月 19 日 北达科他州 23 github 防止在后台打开的标签页加载,除非手动激活它们
Aaron Horler 的 LoadTabOnSelect 2017 年 9 月 6 日 Apache 2.0 329 github 在选择时加载新打开的后台标签,而不是在后台自动加载。
Un Crevard 的 LoadTabOnSelect 进化 2020 年 11 月 17 日 GPL 3.0 11 github 从 LoadTabOnSelect 派生而来。仅在选择时加载背景标签。
Pradeep Mishra 的新标签吊带 2021 年 11 月 20 日 MPL 2.0 9,119 github 可以在超时后暂停
通过 igorlogius 从剪贴板打开 2023 年 8 月 4 日 北达科他州 52 github 从剪贴板打开标签而不加载页面内容(例如丢弃状态)
在 def00111 丢弃的新标签页中打开链接 2018 年 8 月 13 日 MPL 2.0 17 不适用 添加“在新的废弃选项卡中打开链接”选项
Glin 的 Tab Discard (Suspender) 2020 年 7 月 5 日 MPL 2.0 214 不适用 看起来你点击了工具栏按钮来暂停当前选项卡
Eric Promislow 的 Tab hunter 2023 年 3 月 18 日 MPL 1.1 833 github 手动放弃选定的标签(在插件中选择标签 > 更多 > 放弃标签按钮)
TabSuspender 由 TabSuspender 提供 2019 年 7 月 15 日 MPL 2.0 764 不适用 添加“在新的废弃选项卡中打开链接”选项
Afnan Khan 的 Tab Unloader 2020 年 2 月 1 日 麻省理工学院 684 不适用 具有可按位置禁用的选项卡菜单选项(例如向左/向右/其他)
Lej77 的树形标签样式标签卸载器 2022 年 4 月 22 日 GPL 3.0 1,252 github 选项卡卸载选项树样式选项卡
Elsa zz 的“更安全的吊带” 2021 年 12 月 29 日 GPL 3.0 12 github 自动暂停一段时间未使用的标签
k5md 的 Total Suspender 2020 年 4 月 18 日 麻省理工学院 2,400 github 暂停所有非活动标签页,可配置时间、白名单,并能够忽略有声标签页
从上下文菜单卸载选项卡,作者:Bogdan Filipchuk 2019 年 1 月 25 日 麻省理工学院 105 github 提供“卸载标签”标签菜单选项
NiklasG 的 UnloadTabs 2019 年 9 月 6 日 MPL 2.0 3,388 github 提供“卸载标签”和“卸载其他标签”的标签菜单选项

推荐使用 FOSS 插件来自动丢弃标签:

至于我真正想向处于原始发帖者位置的人推荐什么(例如,在选择之前不要加载任何标签),首先,我要提醒的是,我个人没有已测试这些,我会按照描述去做。其次,由于我有强烈的偏见(可能与 OP 或任何阅读此文的人不同),我会忽略任何没有公共代码存储库的插件,即使它们有 FOSS 许可证,以及任何超过 2-3 年没有更新的插件。我的理由是,真正旧的插件更有可能与 Mozilla 的 api 更改相抵触,并且任何没有公共存储库的东西都不太可能获得社区的支持(例如更少的错误报告/补丁,更少的人来审查代码以查找任何可疑的东西,等等)。

根据对剩余物品的描述,在选择时加载背景标签(作者:igorlogius)或者Un Crevard 的 LoadTabOnSelect 进化 听起来最符合 OP 的要求。

但对于不需要暂停每个后台标签的人来说,其他许多方法可能同样有效(例如,对于那些可以接受通过白名单、超时或其他标准处理标签的人来说)。在这种情况下,自动标签丢弃功能(作者:tlintspr)Chris Trotman 的 Auto Tab Reaper, 或者k5md 的 Total Suspender都可能是不错的选择。同样kgersen 的延迟加载背景标签masgo 已经提到过这一点。

与内置标签丢弃相关的 about:config 设置:

正如本文开头所暗示的,还有browser.tabs.unloadOnLowMemory一个控制 Firefox 本身是否会在以下情况下尝试卸载标签:内存不足。但该文章可能已过时或缺少某些场景(例如 Linux),因为它暗示此设置是true默认设置(至少,如果直接使用来自 Mozilla 的未修改版本)。

在某些系统或分叉项目中,情况可能并非总是如此。例如,我在 Fedora 38 上使用 Firefox 118.0.2,即使使用新~/.mozilla配置文件,来自 Fedora 中央存储库的 Firefox(由 Fedora 贡献者和/或 Red Hat 员工打包,而不是直接来自 Mozilla)browser.tabs.unloadOnLowMemory=false默认使用。这似乎是在文件中定义的/usr/lib64/firefox/omni.ja。在同一系统上运行的 Librewolf 分支也默认为,browser.tabs.unloadOnLowMemory=false并且似乎在中有类似的定义/usr/share/librewolf/omni.ja。似乎在 Ubuntu 上也是如此但我清楚这是否与 Linux 下的功能问题有关([1][2][3], [4])、打包者/社区偏好,或者其他完全不同的东西。同样,不知道该设置对于原生构建和 flatpak/snap 构建的行为是否不同。这一页对 Windows 上的工作原理进行了更详细的讨论。

与之相关的一些其他设置browser.tabs.unloadOnLowMemory是:

  • browser.low_commit_space_threshold_percent- 看这里进行更深入的讨论
  • browser.low_commit_space_threshold_mb- 看这里进行更深入的讨论
  • browser.tabs.min_inactive_duration_before_unload:值以毫秒为单位。默认值:(600000毫秒,即 600 秒,即 10 分钟)。从这里

关于:配置设置切向相关标签丢弃:

我假设任何寻找标签卸载的人可能也会关心性能/稳定性,什么情况会导致链接在后台打开(这可能会影响阻止后台标签加载的插件是否在其上运行),以及任何可能导致浏览器在没有用户明确告诉它的情况下重新加载标签的情况。

  • accessibility.blockautorefresh:默认为 false。设置为 true 可防止自动刷新标签。某些页面/网站要求浏览器在给定超时后通过包含 HTML 元素<meta http-equiv="refresh">或发送 Refresh: HTTP 标头来自动刷新页面。此属性控制 Firefox 是否在发生这种情况时刷新页面。更改此设置后可能需要重新启动 FF 才能生效。请参阅这里了解更多信息。这不会影响尚未加载的选项卡,但与常规加载一样,如果您打开了大量选项卡,则可能会浪费额外的内存/CPU 时间。

  • browser.cache.check_doc_frequency:参见文档这里。这可能与少数特殊情况有关。默认 ( 3) 又称“页面过期时检查新版本”可能对大多数人来说都很好。但在某些情况下,您可能只想从缓存中加载 ( 2),从不从缓存中加载 ( 1),或者每个 Firefox 会话只加载一次页面 ( 0)。

  • network.http.use-cache/ browser.cache.memory.enable/ browser.cache.disk.enable/ browser.cache.disk_cache_ssl/ browser.cache.disk.capacity/ browser.cache.memory.capacity:如果您分别禁用这些选项或将它们设置得太低,Firefox 可能会不必要地从网络而不是从缓存中自动刷新页面,从而浪费更多的系统资源。这可能只有在您加载大量选项卡并且想要避免刷新时才会出现问题。所有非*容量的都应默认为true。容量值以 KB 为单位(技术上是 KiB - 例如二进制单位,而不是 SI 单位),0有效的值将禁用这种缓存。browser.cache.memory.capacity还支持-1(默认值),这意味着根据可用 RAM 自动管理。browser.cache.disk.capacity不支持-1并且必须是实际正数或零(50000根据文档,默认值为 48.8 MiB,但对我来说,256000从 Fedora 38 上的 Firefox 118.0.2 开始,它被预设为 250 MiB)。本要点页面还有一些与缓存相关的改进技巧。

  • dom.ipc.processCount/ dom.ipc.processCount.webIsolated:默认值似乎因您正在阅读的文档而异,但对我而言(Fedora 38 上的 Firefox 118.0.2)它是dom.ipc.processCount=8dom.ipc.processCount.webIsolated=4。除非您已经阅读/理解了FF 流程模型但本质上,它们限制了给定类型的每个站点的进程数。对于大多数用户来说,webIsolated 属性将更加相关,因为这通常会控制每个站点加载时使用的进程数(除非您已关闭场地隔离又名裂变通过fission.autostart=false设置不是建议,在这种情况下dom.ipc.processCount会更相关)。这不会影响预分配的进程、与网站无关的 Firefox 使用的进程(例如插件等)和其他一些事情。因此,如果您将设置减少到dom.ipc.processCount.webIsolated=1,您可能不会注意到性能改进,但可能会注意到稳定性的提高。

还有几个属性可以控制链接是否打开到后台还是前台选项卡,这些属性可能会对自动管理后台内容的插件发挥作用。已经有一个很好的答案这里来自 jscher2000 (他也制作了一些非常有用的附加组件),以防链接失效,我将在这里引用这段话:

  • 忽略服务.同步.prefs.同步.浏览器.tabs.loadInBackground偏好,这只是告诉 Firefox 在同步偏好时是否包含下一个偏好。

  • browser.tabs.loadInBackground默认设置为 true,即选项页面上带有复选框的选项。这涵盖了您专门将链接指向新选项卡的情况,例如,从右键单击上下文菜单,或通过 Ctrl+单击或鼠标中键单击链接。我建议双击将其设置为 false,然后双击将其恢复为 true,以确保您和 Firefox 在同一页面上。

  • browser.tabs.loadDivertedInBackground默认设置为 false。这包括链接被编码为在新窗口中打开,而 Firefox 将其转移到新选项卡的情况——Firefox 会立即切换到新选项卡。如果您在使用此类链接时遇到问题,请双击首选项将值从 false 切换为 true。

  • browser.tabs.loadBookmarksInBackground默认设置为 false。这不是您的问题,但可以考虑在未来进行试验。

  • 浏览器.搜索.上下文.loadInBackground默认设置为 false。这适用于通过选择页面中的文本、右键单击并使用“在 Google 中搜索 [文本]”项来运行的搜索(或者,如果您的默认搜索引擎不是 Google,则会在此处提及您的默认搜索引擎)。这不是您的问题,但可以考虑在未来进行试验。

答案2

这在 Firefox 45 上对我有用:选择时加载标签插件阻止后台标签加载,直到被选中。根据描述,此插件仅在您设置browser.tabs.loadInBackground为时才有用true

作为建议,您可能还想使用暂停标签插件,可自动暂停后台标签以节省内存。此功能可配置,您可以选择暂停标签前的延迟时间。

答案3

此选项还由自动卸载选项卡插件,在我看来,这是处理标签卸载最丰富的插件之一。

除其他功能外,它还允许您配置如何处理(新打开的)背景选项卡:

  • 保持加载(默认方法);
  • 直到被访问时才加载它们;
  • 立即加载白名单网站,其他网站仅在打开时加载;
  • 逐个加载后台标签,这样可以避免 Firefox 在同时加载多个网站时减慢其速度;
  • 加载后台标签然后卸载它们,“以获得更好的附加组件兼容性”(无论这意味着什么)。

答案4

扩展延迟加载背景标签效果很好。标签页仍然在后台加载,但每次只加载一个。这样,当您同时打开大量标签页时,Firefox 和整个 PC 就不会变慢了。它还有一个选项“限制此扩展加载的标签页数量”,如果设置得非常低,将阻止大多数后台标签页加载。

相关内容