你遇到的问题是,显示的是“最后加载”的任何链接,它们并不总是按照它们被单击的顺序加载,因为并不是所有链接都可能具有相同的文件大小加载时间比其他时间长)。所以你需要一种方法来跟踪哪个链接最后被按下。 Id建议记录最后一个请求的简单全局变量。
var lastURL;
$(".load-me").on("click", function(){
var url = $(this).attr("href");
lastURL = url;
(function(){
var thisURL = url;
$.get(url, function(x){
if(thisURL==lastURL)
$(".main-container").html(x);
});
}()); // Anon function for scoping thisURL;
})
这应该加载最后一个压他们加载顺序的reguarless,另一个问题我看到的是你可能会潜在地一遍又一遍地加载相同的内容,你应该将内容保存在一个数组,并检查看看它是否已经加载,以及它是否使用已经加载的内容而不是再次加载内容。
var lastURL;
var contents = [];
$(".load-me").on("click", function(){
var url = $(this).attr("href");
lastURL = url;
(function(){
var thisURL = url;
for(var i=0;i
if(content[i].url == thisURL){
$(".main-container").html(content[i].content);
return; // kills the anon function
}
}
$.get(url, function(x){
contents.push({
url: thisURL,
content: x
});
if(thisURL==lastURL)
$(".main-container").html(x);
});
}()); // Anon function for scoping thisURL;
})
这将使内容加载速度更快的第二,第三,第四......时间,同样的页面加载,因为它没有这样做的另一个GET请求。