我有20页,每页包含30个li
标签,如下所示
<li id="1">1<li/>
<li id="2">2<li/>
<li id="3">3<li/>
<li id="4">4<li/>
<li id="5">5<li/>
...
我会针对每个ajax(.getJSON())
标记为多个线程发起li
调用,
我使用以下jQuery代码完成了这个,但它是一个接一个的ajax(.getJSON)调用,
完成一次ajax调用需要2秒(业务逻辑+表示逻辑)。要加载总页数,需要60秒(2x30)。
jQuery(li).each(function(e) {
jQuery.getJSON(JSonUrl,{},
function(json) {
// AJAX Response.
if (json == null) {
} else {
var jsonList = json.deviceStatusString.split(',');
var jsonInnerList = jsonList[0].split('#');
...
}
}
);
});
你能帮我解决像java多线程一样的所有ajax调用吗?
答案 0 :(得分:4)
我相信您达到了最大数量的请求限制,因此您的浏览器正在等待更多线程可用。看看这个主题:How many concurrent AJAX (XmlHttpRequest) requests are allowed in popular browsers?
答案 1 :(得分:1)
如果您遇到多个AJAX请求的性能问题,那么您应该始终考虑的事情之一是将所有这些AJAX调用最小化为更少的调用,最好是将所有这些调用放入一个AJAX中调用
这样,你就可以摆脱与抛出和维护多个HTTP请求相关的一大堆开销。