V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
maxssy
V2EX  ›  浏览器

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

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

    正常开发的话,这种接口意义不大,就像 malloc 和 free 一样,调用 setTimeout 不去接收返回的 id ,可以理解为内存泄漏一样,没法回收了。
    Track13
        8
    Track13  
       2023-06-27 20:17:21 +08:00 via Android
    你引入的其他包里面的怎么办?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3219 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 12:43 · PVG 20:43 · LAX 04:43 · JFK 07:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.