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