0

我正在使用 jQuery 构建一个应用程序,该应用程序从 php 文件请求 json 格式的数据以显示项目列表。我的脚本在 Chrome 和 Firefox 中运行良好,但在 IE 中我有一个奇怪的行为:我没有从控制台返回任何错误,但脚本卡在“正在加载数据......”然后。 .. 休息一段时间后,大多数时候它会加载。我不知道 IE 是否只需要大量秒来加载所有数据(这很奇怪,因为 Chrome 和 Firefox 会在几毫秒内加载所有内容),或者我的脚本有问题而未被检测到。

在这里,我发布了与加载有关的脚本部分:

/*
This function hides the div containing the "Loading data..." message  
as the loading is complete.
*/  

$.hideLoading = function() {
        $("#loading").hide();
        $("#searcharea").show();
    };
/*
This function is responsible for getting the data from the php file and "shouts"
when it's finished.  
*/      
$.getData = function(field) {
    return $.ajax({
        url: 'lib/getData.php',
        data: { d: field },
        datatype: 'json'
    }).promise();
};

/*
When the two functions are done, hideLoading() is fired causing the "Loading data..."
message to disappear. 
*/ 

$.when(catData = $.getData('cat'), giftsData = $.getData('gifts') ).done(function() {
    $.hideLoading();
});

/*
They hand the loaded data to functions that will process it.
*/ 
catData.then(function(data) {
    $.parseCategories(data);
});

giftsData.then(function(data) {
    $.parseGiftData(data, targetId);
    giftsDataObj = data;
});

这段代码有什么问题让 IE 每隔一段时间工作一次吗?我可以以任何方式检测是否有一些实际加载?因为坦率地说,我不明白它是如何工作的,然后……卡住了。

编辑:我已经console.log从脚本中删除了所有内容,现在看来,当我启动 IE 并且它第一次加载页面时,脚本工作正常,但是如果我尝试重新加载页面,那么脚本就会卡住。

4

0 回答 0