Javascript 是否从/为Tampermonkey清除浏览器选项卡RAM使用情况?
我正在寻找一种针对注入javascript的解决方案,该方案使用Tampermonkey for Chrome,每次重新加载页面都会清除RAM的使用,而不会增加RAM的使用 我正在用Chrome开发者工具->Timeline对注入的脚本进行测试。每次我重新加载页面时,RAM的使用量都会增加 我的javascript包含很少的jQueryAjax调用和几行代码 我尝试了所有可能的javascript重新加载函数,但没有一个能给出我想要的结果Javascript 是否从/为Tampermonkey清除浏览器选项卡RAM使用情况?,javascript,google-chrome,memory-management,tampermonkey,Javascript,Google Chrome,Memory Management,Tampermonkey,我正在寻找一种针对注入javascript的解决方案,该方案使用Tampermonkey for Chrome,每次重新加载页面都会清除RAM的使用,而不会增加RAM的使用 我正在用Chrome开发者工具->Timeline对注入的脚本进行测试。每次我重新加载页面时,RAM的使用量都会增加 我的javascript包含很少的jQueryAjax调用和几行代码 我尝试了所有可能的javascript重新加载函数,但没有一个能给出我想要的结果 因此,如果有人知道如何解决这个问题,我将非常感激。更新:
因此,如果有人知道如何解决这个问题,我将非常感激。更新:
这导致一些数据即使在重新加载页面后仍保留在内存中。所以也许你的问题现在已经解决了
选择另一个选项卡并等待几秒钟。没有其他方法可以触发垃圾回收 也许你可以用这个魔法来假装完全重新加载:
// ==UserScript==
// @name fake reload
// @namespace http://use.i.E.your.homepage/
// @version 0.1
// @description enter something useful
// @match http://tampermonkey.net/empty.html
// @copyright 2012+, You
// ==/UserScript==
function fake_reload() {
console.log("...now");
GM_openInTab(window.location.href, {active: false, insert: true});
// close the current window some ms later to allow the insert magic to detect this' tab position
window.setTimeout(window.close, 1);
}
window.setTimeout(fake_reload, 3000);
console.log("run 'fake reload'...");
更新:
这导致一些数据即使在重新加载页面后仍保留在内存中。所以也许你的问题现在已经解决了
选择另一个选项卡并等待几秒钟。没有其他方法可以触发垃圾回收 也许你可以用这个魔法来假装完全重新加载:
// ==UserScript==
// @name fake reload
// @namespace http://use.i.E.your.homepage/
// @version 0.1
// @description enter something useful
// @match http://tampermonkey.net/empty.html
// @copyright 2012+, You
// ==/UserScript==
function fake_reload() {
console.log("...now");
GM_openInTab(window.location.href, {active: false, insert: true});
// close the current window some ms later to allow the insert magic to detect this' tab position
window.setTimeout(window.close, 1);
}
window.setTimeout(fake_reload, 3000);
console.log("run 'fake reload'...");
脚本代码中可能存在内存泄漏。有关堵住此类漏洞的想法,请参阅
通常,您无法通过设计从javascript中清除RAM。但是,如果你对在用户脚本(可能在目标页面上)中查找和堵住内存泄漏很在行,你可以抓取/构建一个Chrome的调试版本,然后看看如何允许javascript强制垃圾收集。你可能在脚本代码中有内存泄漏。有关堵住此类漏洞的想法,请参阅
通常,您无法通过设计从javascript中清除RAM。但是,如果你对在用户脚本(可能在目标页面上)中查找和堵住内存泄漏很在行,你可以抓取/构建一个Chrome的调试版本,然后看看如何允许javascript强制垃圾收集。你在自己的代码中修复了内存泄漏(+1),这太好了。但部分答案包含错误信息(-1;参见我参考的答案)。我也不确定我是否喜欢“闪烁的标签”的想法。另外,请修改您的网站,以便直接链接到您引用的更改,打开一个显示该更改的页面并滚动到该页面。您在自己的代码中修复了内存泄漏(+1),这很好。但部分答案包含错误信息(-1;参见我参考的答案)。我也不确定我是否喜欢“闪烁标签”的想法。另外,请修改您的网站,以便直接链接到您引用的更改,打开一个页面,显示已经发生的更改并滚动到该页面。