我有一个页面在加载后执行繁重的 javascript 代码。为了防止页面在加载时冻结,我将执行分成批次,中间有一些“不执行”时间(使用超时),并且事情运行良好。
最近,我不得不添加额外的重型 javascript 代码,这些代码可以在客户端操作时执行,但这些操作甚至可以在原始重型脚本执行完成之前发生。这一次,间隔操作将无济于事,因为在一个脚本的“停机时间”,另一个可以运行,反之亦然,这将导致浏览器冻结。
问题实际上更复杂,因为有多个此类操作,每个操作执行不同的繁重脚本,并且与其他脚本相比,每个脚本类型对于我希望它完成的速度有不同的“优先级”。
我的问题是,在这种情况下的常见做法是什么?我试着想办法解决它,但我能想到的只是一个相当复杂的解决方案,它几乎就像用 javascript 编写操作系统一样——即编写一个每 X 次执行的“管理器”代码(使用“中断”),并选择哪个“要切换到的上下文”(=现在应该运行哪个作业)等等......
然而,这对我来说听起来很复杂,我希望那里可能有其他解决方案。我的问题听起来像是我认为很多人以前偶然发现的问题,所以即使唯一的解决方案是我建议的,我也会假设有人已经写了它,或者有一些库支持。
任何帮助将不胜感激。谢谢你。
== 编辑 ==
通过“繁重的代码”,我的意思是例如对大量元素的 DOM 操作。