Javascript 使用WebWorker获取JSON
如何使我的脚本与WebWorker一起工作Javascript 使用WebWorker获取JSON,javascript,Javascript,如何使我的脚本与WebWorker一起工作 $.getJSON(url, function(data) { var x=""; for (i=0;i<data.sturi.length;i++) { $("#stdjgls ul").append("<li itemid="+i+">&l
$.getJSON(url, function(data) {
var x="";
for (i=0;i<data.sturi.length;i++)
{
$("#stdjgls ul").append("<li itemid="+i+"><a href=#vl>"+data.sturi[i]+"</a></li>");
stdge[i]=data.sturi[i];
}
$.getJSON(url,函数(数据){
var x=“”;
对于(i=0;i您需要事先创建WebWorker的实例。另外,声明stgde以防万一
var worker = new Worker('/js/mywebworker.js');
var stgde=[];
然后为Webworker消息声明一个侦听器以执行某些操作
worker.addEventListener('message', function (e) {
do something with e...
}, false);
然后,在getJSON中,将数据
变量作为消息传递给webworker
$.getJSON(url, function(data) {
var x="";
worker.postMessage(data);
}
如果您的webworker能够与DOM交互(这是不可能的,但让我们忽略这一点),它将附加
项并返回stdge作为结果。在这种情况下,您声明的侦听器函数将是
worker.addEventListener('message', function (e) {
stdge=e.data;
worker.terminate();
}, false);
我不知道你为什么要用网络工作者来做这件事,但作为一个概念的证明,它会起作用
从理论上讲,它可以帮助您减轻遍历数据数组的负担,但这可以忽略不计。事实上,dom操作不起作用,因此您无法插入li元素。这意味着您需要在侦听器函数中进行操作
worker.addEventListener('message', function (e) {
stdge=e.data;
for (var i=0;i<stdge.length;i++) {
$("#stdjgls ul").append("<li itemid="+i+"><a href=#vl>"+stdge[i]+"</a></li>");
}
worker.terminate();
}, false);
worker.addEventListener('message',函数(e){
stdge=e.data;
对于(var i=0;我没有理由为此使用web worker。对于每个智能手机都可用的页面来说,当一个智能手机的连接不好时,这不是必需的吗?否;web workers只是为了阻止(CPU绑定)工作。但是当连接丢失时,CPU会阻止,因为没有可用的数据吗?否;这就是异步的意思。