【发布时间】:2015-09-01 14:33:24
【问题描述】:
我有一个 div。
<div id="test"></div>
功能少。
fun1()
{
$('#test').html('');
$.ajax(function(){
url : abc/index;
success : function(response){
$('#test').html(response);
}
});
}
fun2()
{
$('#test').html('');
$.ajax(function(){
url : abc/getDetail;
success : function(response){
$('#test').html(response);
}
});
}
fun3()
{
$('#test').html('');
$.ajax(function(){
url : abc/getUser;
success : function(response){
$('#test').html(response);
}
});
}
函数在不同的按钮点击时调用。
btn1.click(fun1())
btn2.click(fun2())
btn3.click(fun3())
当 btn1、btn2、btn3 一个接一个地按下时,我可以看到 div 'test' 包含作为第一个 'fun1' 响应,经过一段时间的 'fun2' 响应等等。
我知道原因,因为我的 ajax 响应非常慢,这就是它发生的原因。
当有人点击 btn1 并且在得到 fun1 的响应之前,按 btn2。在这种情况下,我只想加载 fun2 响应。如果 fun2 正在延迟想要显示空白页。
我正在考虑在按下按钮时终止剩余的 ajax 请求。但同时我的其他 ajax 请求也在进行,我不想杀死那些。 所以杀死其他ajax请求对我不起作用。 其他解决方案是什么。
【问题讨论】:
-
那么问题是缓慢的 ajax 请求还是这些似乎都将数据填充到同一个元素中的不同按钮之间的交互?
-
@Mike Brant : 缓慢的 ajax 响应。
-
好吧,您甚至还没有在这里谈论过。为什么反应慢?反应太大了吗?后端服务器提供响应的速度是否太慢(即代码可能写得不好,数据库访问速度很慢等)。但是,如果您真的想了解如何提高响应速度,则需要详细说明时间花在哪里。
-
@Mike Brant:服务器响应很慢。
-
@HemantMalpole 好的。但为什么?您是否在服务器端进行了任何分析/计时以了解代码将时间花在哪里?就目前而言,这个问题太宽泛了。您甚至还没有回答基本问题,例如响应负载的大小。如果你有一个巨大的响应,也许你所有的时间都花在了下载响应上。
标签: javascript jquery ajax