我正在使用 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 并且它第一次加载页面时,脚本工作正常,但是如果我尝试重新加载页面,那么脚本就会卡住。