【发布时间】:2013-11-20 17:17:38
【问题描述】:
我为游戏编写了一个 javascript/jquery 脚本,我的脚本有可能发出 100 个同步页面请求。我遇到的问题是加载时间太长。我已经诊断出原因是我请求的页面有几个外部图像链接,所以对于我请求的每个页面,该页面都会发出大约 10 个其他请求。我没有办法从页面中删除图像,所以有没有办法让 ajax 请求排除任何外部 http 请求?
这是我发出请求的脚本部分
function getPage(i,pages){
if(i<pages){
changeHeader(filter_41 + " " + (i+1) + "/" + pages + " <img src='graphic/throbber.gif' height='24' width='24'></img>");
var urlParams;
if(urlParam('t') != 0){
urlParams = {order: $('#orderBy').val(),dir: $('#direction').val(),screen: "am_farm", Farm_page: i, village: urlParam('village'), t: urlParam('t')};
}
else{
urlParams = {order: $('#orderBy').val(),dir: $('#direction').val(),screen: "am_farm", Farm_page: i, village: urlParam('village')};
}
ajaxRequest = $.ajax({
url: "/game.php",
type: "GET",
data: urlParams,
dataType: "text",
async: true,
success: function(){
setTimeout(function(){getPage(i+1, pages);},1);
}
});
ajaxRequest.done(function(data) {
// append all table rows retrieved from data except for first two and the last
$('#am_widget_Farm tr', data).not(":last").slice(2).each(function(){
$('#am_widget_Farm tr:last').after("<tr>"+$(this).html()+"</tr>");
});
});
}
else{
setTimeout(function(){
addTableInfo();
applyFilters();
changeHeader(filter_40);
highlightRows();
},1);
$('#am_widget_Farm').show();
pagesLoaded = true;
}
}
【问题讨论】: