我有以下代码:
var self = this;
jQuery('#' + loadingAlert.id).promise()
.done(() => self.showProgress())
.done(window.setTimeout(() => self.someMethod(), 100));
.done(() => self.hideProgress());
someMethod函数使浏览器忙于冻结加载gif。有没有解决这个问题,以便我的加载gif在浏览器繁忙时移动(注意:因为它非常繁忙所以无法点击任何东西);
答案 0 :(得分:0)
是否有任何解决方法可以让我的加载gif在浏览器忙碌时移动
没有。您将不得不更改导致冻结变为异步的someMethod
函数,并以较小的块进行工作。
答案 1 :(得分:0)
在现代浏览器中,您可以使用网络工作者。 - 凯文B
我使用webworker来解决这个问题,所以重度解析在后台并且不会冻结浏览器。
虽然它在IE9和其他提及here的浏览器中不起作用,但我刚刚解决了这个问题:
if (window['Worker']) { ... }
这意味着它是否支持webworker。那些不支持webworker的人会挂起(仍然使用我的旧代码),但浏览器版本可以完美运行。