我承认我对完整的 ajax 网站非常陌生,所以我肯定会犯一些错误。
问题是这样的:在http://lamovida.arabianessence.com
每个页面都使用此函数加载了 $.ajax 调用
function getAjaxPage() {
$('a.ajaxc').click(function() {
$("li.page_block").find(".wrapper").fadeOut(400).remove();
hideSplash();
var $thishref = $(this).attr('href'),
$thisurl = $thishref.replace("#!/",""),
$urlArr = $thisurl.split('-'),
$urlOk = $urlArr[0],
$dataOk = $urlArr[1];
$.ajax({
url : $urlOk + ".php",
data : 'id='+$dataOk,
success : function (data,stato) {
$("#content").css({opacity:1}).fadeIn(400);
$("li.page_block").html(data);
$("li.page_block").css('visibility', 'visible');
$("li.page_block").find(".wrapper").css({opacity:0}).show().animate({opacity:1},1000);
var $whgt = $(".wrapper").height(),
$ctop = ( ( $(window).height() - $whgt ) /2 )-40;
$("#content").stop().animate({height: $whgt+40, top: $ctop},1000);
$("li.page_block").css('padding-top',20);
$('.scrollable').jScrollPane();
$('.slider>ul>li').jScrollPane();
getAjaxPage();
},
error : function (richiesta,stato,errori) {
alert(errori);
}
});
});
}
每次调用此函数时,内容的加载速度都会变慢,大约 20 次点击后,情况变得非常糟糕,加载时间越来越长。
我尝试使用谷歌浏览器的时间线来分析情况,我发现每次点击后浏览器都会使用更多的内存。如果我评论 getAjaxPage(); 排在“成功”部分的情况开始好转,但当然我失去了所有的内部导航。
我能做些什么来避免这个问题?
非常感谢大家!