Javascript 加速json加载

Javascript 加速json加载,javascript,json,variables,delay,Javascript,Json,Variables,Delay,我正在处理一些本地json文件,但在加载速度方面遇到了一些问题。我的服务器只是一个用python制作的小Web服务器,我通常用它来尝试我的javascript代码。 我的脚本只适用于Firefox,我必须延迟60000毫秒(或者使用firebug)。 剧本是: function geisson() { var iabile = new XMLHttpRequest(); iabile.open("GET", "longanocard.json", true); iabile.send(null

我正在处理一些本地json文件,但在加载速度方面遇到了一些问题。我的服务器只是一个用python制作的小Web服务器,我通常用它来尝试我的javascript代码。 我的脚本只适用于Firefox,我必须延迟60000毫秒(或者使用firebug)。 剧本是:

function geisson()
{
var iabile = new XMLHttpRequest();

iabile.open("GET", "longanocard.json", true);
iabile.send(null);


PerdiTempo(60000);

var objectjson = {};
var arrayCards= []; //creazione dell'array che conterrà le cards


objectson = JSON.parse(iabile.responseText);

arrayCards = objectson.cards;
//alert(arrayCards[0].__guid__.toSource());


var qwerty = arrayCards[0].__guid__;

var mela = "http://www.airpim.com/png/public/card/" + qwerty + "?width=292";    


document.location = mela;
//windows.location.href= mela;
}
PerdiTempo是我用于延迟的函数:

function PerdiTempo(ms)
{
ms += new Date().getTime();
while (new Date() < ms){}
}
函数PerdiTempo(ms)
{
ms+=新日期().getTime();
而(新日期()

如何加快文件longanocard.json的加载速度?为什么延迟对其他浏览器不起作用?

您应该避免以这种方式等待异步响应(您如何确切知道JSON解析延迟了多少秒?),而是使用请求的
onreadystatechange
事件

function geisson() {

    var iabile = new XMLHttpRequest();

    iabile.onreadystatechange = function(){
        if(iabile.readyState === 4 && iabile.status === 200) {
            var objectjson = {};
            var arrayCards= []; //creazione dell'array che conterrà le cards
            objectson = JSON.parse(iabile.responseText);

            ...
            /* codice restante qui */

        }
    }
    iabile.open("GET", "longanocard.json", true);
    iabile.send(null);

}

以这种方式等待回应是可怕的。您应该使用回调,在
onreadystatechange
event检查响应状态。您不应该使用这样的循环编写延迟代码,因为浏览器在JS代码完成之前不会重新绘制,因此从用户的角度来看,浏览器将锁定。