如何解决停止浏览器上长时间运行的javascript函数
我的问题分为两个部分
-
如果函数运行200ms以上并返回默认值,我想终止该函数。我尝试尝试Promise.race的概念,但是没有产生预期的结果
-
我想确定该函数是否具有类似于有人使用无限循环而不会冻结浏览器或CPU过载时JSFiddle或Codepen如何退出的无限循环
有可能
解决方法
如果您可以使用该功能,则可以在运行很长时间的循环内添加时间检查,并在达到时间限制时返回(最简单,最兼容的方式)。
如果您不知道该函数在做什么或无法对其进行修改,则可以尝试将其包装在Web worker中。如果您在工作程序中启动长时间运行的js,则可以在超时时对其进行.terminate()
此外,It is impossible用于确定某事物是否包含无限循环而不执行该循环
,是的,您可以做到,这是我编写的通用脚本,作为概念证明。它动态创建一个Web worker,并以其他语言具有线程的方式使用它。但是,如果您只是想终止一个活动的XHR或Fetch调用,则可以使用built-in methods。
filter.append
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。