我尝试使用此代码段刷新页面内容,进行一些简单的Ajax调用:
$("a.ajaxify-watched").bind("click", function(event) {
$item = $(this);
$.ajax({
url: $(this).attr("href"),
global: false,
type: "GET",
data: ({
callback : "inline"
}),
dataType: "json",
async:false,
success: function(msg){
if (msg.status == 200) {
toggleStatus($item, msg)
}
}
});
return false;
});
这对我来说是完美的,对我而言,没有什么可以担心代码而是它执行的速度。
第一次一切正常:操作47毫秒。但在此之后,每隔一次Ajax调用就会得到2.6秒的持续延迟 - 每次都是如此。我检查了Firebug,发现它显示为“等待时间”。
我真的不能说这里发生了什么。 我们最近从纯Apache2切换到Nginx缓存反向代理,并使用Apache作为Backend Php Interpreter进行负载平衡。我们可以看到巨大的性能提升,一切都很好。我无法判断我的问题何时首次出现,以及它是否真的与我们的新服务器设置有关。
我今天刚刚发现,jQuery存在问题所以我只想提供尽可能多的信息。
谢谢,如果我应该提供更多信息,请告诉我。
答案 0 :(得分:0)
如果Firebug指示等待它看起来像服务器问题。
有没有办法在没有ajax的情况下直接调用页面?如果是这样,尝试这样做并检查页面是加载还是慢?
另外,请检查您是否在ajax上触发任何可能影响此事件的事件。
大多数服务器只处理来自同一服务器的单个页面加载,因此在队列中处理多个页面加载,因此如果您有并行的ajax调用,则可能必须等待彼此。