Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 浏览器被阻塞,工人们去营救?_Javascript_Html_Google Gears - Fatal编程技术网

Javascript 浏览器被阻塞,工人们去营救?

Javascript 浏览器被阻塞,工人们去营救?,javascript,html,google-gears,Javascript,Html,Google Gears,我使用JavaScript呈现20个表,每个表有100行。 每个表的数据由controller以JSON的形式提供。 每个表都被分割成一个包含“总计”和一些其他JavaScript逻辑代码的部分。有些总数超出了表格本身的范围 因此JavaScript会将浏览器阻塞几秒钟(尤其是在IE6中):( 我正在考虑使用, 然而,Google Gears Workers(我猜一般来说是Workers)不允许我在worker代码中对DOM进行更改,而且在我看来,我不能在jsworker代码中使用jQuery。

我使用JavaScript呈现20个表,每个表有100行。 每个表的数据由controller以JSON的形式提供。 每个表都被分割成一个包含“总计”和一些其他JavaScript逻辑代码的部分。有些总数超出了表格本身的范围

因此JavaScript会将浏览器阻塞几秒钟(尤其是在IE6中):(

我正在考虑使用, 然而,Google Gears Workers(我猜一般来说是Workers)不允许我在worker代码中对DOM进行更改,而且在我看来,我不能在jsworker代码中使用jQuery。(可能我错了?)


这个问题似乎是JavaScript编码实践的基础,你能和我分享一下你的想法吗?

一般来说,你不应该在backgroundworker中更改UI。你应该始终向主线程发出工作人员已完成的信号,并将结果返回给主线程,然后由主线程处理该结果

HTML5包含标签的异步属性,从那里写入UI会导致一个空白页面,其中只包含您想要写入的内容

所以你需要另一种方法。
我不是JS大师,所以我无法帮助您实现,但至少您现在有了这样的概念:)

工作人员只能通过传递消息与页面的执行进行通信。他们无法直接与页面交互,因为这将带来巨大的困难

您需要优化DOM操作代码以加快处理时间。值得向谷歌咨询良好做法


加快执行速度的一种方法是在DOM外部构建表,并仅在完成后将其插入文档中。这就避免了浏览器在每次插入时都必须重新绘制,这是花费大量时间的地方。

如果您想深入了解浏览器性能的世界,有大量有用的信息—包括javascripts何时阻止页面呈现,以及避免此类问题的最佳实践