卸载窗口之前要清除clearInterval的原因?

亚历山大·奥玛拉

我注意到在几个使用的JavaScript库中setInterval,该库会将事件侦听器绑定到windowunload事件,以便使用清除所有创建的间隔clearInterval

一个示例是History.js,该示例保留“设置的间隔列表,在卸载文档时将其清除”

片段:

// ====================================================================
// Interval record

/**
 * History.intervalList
 * List of intervals set, to be cleared when document is unloaded.
 */
History.intervalList = [];

/**
 * History.clearAllIntervals
 * Clears all setInterval instances.
 */
History.clearAllIntervals = function(){
    var i, il = History.intervalList;
    if (typeof il !== "undefined" && il !== null) {
        for (i = 0; i < il.length; i++) {
            clearInterval(il[i]);
        }
        History.intervalList = null;
    }
};

在事件上unload添加了事件上调用此函数的事件侦听器

片段:

/**
 * Clear Intervals on exit to prevent memory leaks
 */
History.Adapter.bind(window,"unload",History.clearAllIntervals);

因此,我的问题是,为什么有些JavaScript作者会这样做?似乎这些间隔将在浏览器离开页面时自动清除(我从未见过)。这样做有好处吗?它可以弥补某种浏览器错误吗?如果是这样,它将影响哪些错误和哪些浏览器?

亚历山大·奥玛拉

如评论中所述,此代码已添加到History.js中以与Env.js兼容

Env.js是用JavaScript编写的无头浏览器,现在不再处于活跃开发中。至少可以这样说,这绝对是一个极端情况。我猜这个问题是由JavaScript本身的限制引起的。

用户Lance Leonard在评论中指出IE 10中可能存在内存泄漏问题

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

卸载Windows Metro应用之前要执行的操作

来自分类Dev

如何捕获anions窗口:卸载Angular 8之前

来自分类Dev

clearInterval不清除setInterval

来自分类Dev

Javascript clearInterval无法清除

来自分类Dev

clearInterval没有清除

来自分类Dev

Javascript clearInterval将不会清除

来自分类Dev

是否可以保证卸载事件处理程序在下一页加载清除之前完成执行?

来自分类Dev

清除不卸载Java 6?

来自分类Dev

Qtvsaddin清除卸载的Qt版本

来自分类Dev

从Windows 7清除Python卸载

来自分类Dev

clearInterval函数实际上并未清除

来自分类Dev

SELECT之前要ORDER BY?

来自分类Dev

为什么Throwable.getCause在返回`null'而不是直接返回原因之前要检查'cause'是否为'this'?

来自分类Dev

在调用析构函数之前,是否有任何实际原因要检查某些事物是否可破坏?

来自分类Dev

清除PyCharm运行窗口

来自分类Dev

从图形对象清除窗口

来自分类Dev

如何清除CEP窗口

来自分类Dev

无法卸载“ youtube-dl”。找不到要卸载的文件

来自分类Dev

清除Adobe Air应用程序的卸载?

来自分类Dev

如何列出已卸载但未清除的打包?

来自分类Dev

窗口打开之前的窗口的SetParent

来自分类Dev

pip 如何知道要卸载什么?

来自分类Dev

在清除之前检查矢量吗?

来自分类Dev

清除TPM之前如何备份

来自分类Dev

如何使用tkinter清除窗口

来自分类Dev

使用Python从窗口清除图形

来自分类Dev

清除gnu屏幕窗口名称

来自分类Dev

Javascript /切换/切换/ clearInterval()-切换关闭时无法清除clearInterval()

来自分类Dev

Javascript /切换/切换/ clearInterval()-切换关闭时无法清除clearInterval()

Related 相关文章

热门标签

归档