gpt4 book ai didi

javascript - 如何在不卡住浏览器的情况下执行繁重的 JavaScript 代码?

转载 作者:行者123 更新时间:2023-11-28 09:47:03 29 4
gpt4 key购买 nike

我有一个页面在加载后执行大量 JavaScript 代码。为了防止页面在加载时卡住,我将执行分成几批,中间有一些“不执行”时间(使用超时),一切运行良好。

最近,我不得不添加额外的繁重 JavaScript 代码,这些代码可以根据客户端操作执行,但这些操作甚至可以在原始繁重脚本执行完成之前发生。这一次,间隔操作不会有帮助,因为在一个脚本的“停机时间”,另一个脚本可以运行,反之亦然,这将导致浏览器卡住。

问题实际上更复杂,因为有多个这样的操作,每个操作都执行不同的重型脚本,并且与其他脚本相比,每个脚本对于我希望它完成的速度都有不同的“优先级”的。

我的问题是,这种情况下的常见做法是什么?我尝试想一种方法来解决它,但我能想到的只是一个相当复杂的解决方案,这几乎就像用 javascript 编写操作系统一样 - 即编写一个“管理器”代码,该代码每 X 次执行一次(使用“中断”),并选择“要切换到的上下文”(=现在应该运行哪个作业)等...

然而,这对我来说听起来相当复杂,我希望可能还有其他解决方案。我的问题听起来像是我认为很多人以前偶然发现过的问题,所以即使唯一的解决方案是我建议的,我也会假设有人已经编写了它,或者有一些库支持这一点。

任何帮助将不胜感激。谢谢。


==编辑==
我所说的“重代码”是指大量元素的 DOM 操作。

最佳答案

您需要考虑将 UI/问题域定义为一组异步任务。这里有更多见解 http://alexmaccaw.com/posts/async_ui直到我为您制定更好的答案。

关于javascript - 如何在不卡住浏览器的情况下执行繁重的 JavaScript 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11656578/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com