我有这个小提琴http://jsfiddle.net/kd6Y4/4/
从同一网站上的其他网页获取div并显示问题是它的完美在线工作就像直接链接http://fiddle.jshell.net/kd6Y4/1/show/搜索手或两者一样
但是有一个问题,如果我正在搜索一个大约7 mb的html文件,超过6000 div,它会在给出结果之前挂起大约20秒,有时Chrome会在测试时关闭,我想从多个html文件加载结果时间和某种方式,以便结果应该在处理搜索时立即和实时显示,并且它应该一个接一个地搜索多个html文件并按时间顺序显示结果请帮助
} http://jsfiddle.net/kd6Y4/4/
答案 0 :(得分:0)
Javascript遵循单线程计算模型。通过那么多div将阻止线程。为避免这种情况,您可以使用现代处理器的并行计算功能。
Parallel.js就是这样一个利用现代浏览器的多核功能的库。
假设您有500个需要搜索的div。
var divs = getDivs();
var worker = new Parallel('search');
worker.spawn(function(divs){
// do search here
return result;
}).then(function(result){
//display the result
});
这里我们构造一个名为'search'的新并行工作者,然后生成一个作业,传入一个匿名函数。此函数接收需要搜索的div,并返回结果。
最后,致电then
发布/显示返回的结果。
并行取决于webworker api,它定义了在Web应用程序中生成后台脚本的API。这允许您启动长时间运行的脚本来处理计算密集型任务,但不会阻止UI或其他脚本来处理用户交互。