为什么 W3C 不规定个取得所有还未回收的 setTimeOut 和 setInterVal 的句柄的接口呢?

2023-06-27 13:35:07 +08:00
 maxssy
setInterVal 经常会有意料外的创建, 然后之前的任务无法 clear 的情况, 为什么不做一个现有句柄查询接口, 然后就能关闭了呢?
1798 次点击
所在节点    浏览器
8 条回复
march1993
2023-06-27 13:37:08 +08:00
因为你可以自己做啊。。你把 window.setInterval 和 window.setTimeout 全部替换成你自己的函数就可以了
flyqie
2023-06-27 14:02:35 +08:00
可以像楼上老哥说的 override 下 window ?
Belmode
2023-06-27 15:17:12 +08:00
for 0...99999 , clearInterval clearTimeout
lambdaq
2023-06-27 15:28:51 +08:00
好像默认就从 0 开始自增。
dcsuibian
2023-06-27 15:30:36 +08:00
如果是用于调试我觉得还可以,正常运行过程中我觉得直接 clear 掉全部是不合适的做法,因为你不确定它是干什么的。
既然有地方创建,那就对应有地方销毁。
lisongeee
2023-06-27 15:50:57 +08:00
为什么 会有意料外的创建 ?
mikewang
2023-06-27 15:54:01 +08:00
这玩意对于写油猴脚本之类的东西可能不太友好;不过像楼上说的,可以把 window.setTimeout 包装成自己的函数获取 id 。

正常开发的话,这种接口意义不大,就像 malloc 和 free 一样,调用 setTimeout 不去接收返回的 id ,可以理解为内存泄漏一样,没法回收了。
Track13
2023-06-27 20:17:21 +08:00
你引入的其他包里面的怎么办?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/952050

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX