javascript - 有没有办法强制中止正在执行的 JavaScript(或 jQuery)函数?

标签 javascript jquery

<script>
var fn = function(url){
    // bla bla bla...
};
</script>

<input type="button" onclick="fn()" value="Execute">
<input type="button" onclick="???" value="Abort">

就像上面一样,当用户单击“执行”按钮时,fn() 函数将被执行。

假设 fn() 函数会运行很长很长的时间,如果用户想中途停止这个函数的执行,该怎么办?

最佳答案

JavaScript 中的函数是阻塞的——这意味着函数运行时所有内容[1]都会卡住。屏幕不重画,不处理鼠标点击,不处理键盘事件。

在函数完成之前不会发生任何事情。

解决这个问题的唯一方法是使用异步编码以小块的形式运行代码。

有许多工具可供使用,包括:

我建议查看async工具,然后提出另一个关于如何使函数非阻塞的问题。

[1] 出于本次讨论的目的

关于javascript - 有没有办法强制中止正在执行的 JavaScript(或 jQuery)函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37371187/

相关文章:

javascript - execCommand ('SaveAs' ,真, 'data.csv' );不能在 IE 中工作

javascript - 使用 jquery 将表格拉入 iframe

php - 构建支持 ajax 的应用程序的最佳方式

javascript - 循环中的嵌套 Jquery 选择器当前元素

jQuery水平滑动切换导航

javascript - 我的解决方案似乎是 "Ugly"

javascript - 在 e2e 测试中测试路由 Karma 时出错

javascript - 一个长 If 条件与许多带有检查点的较小条件

javascript - jQuery - 结合多个元素选择器与 :not - how

javascript - 如何获取 "this"变量混合 php 和 jQuery?