Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.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 使用WebWorker获取JSON_Javascript - Fatal编程技术网

Javascript 使用WebWorker获取JSON

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

如何使我的脚本与WebWorker一起工作

$.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会阻止,因为没有可用的数据吗?否;这就是异步的意思。