gpt4 book ai didi

ajax - 同时多个ajax调用

转载 作者:行者123 更新时间:2023-12-03 21:39:04 25 4
gpt4 key购买 nike

我开发了一些网站,但我总是遇到同一点:多个ajax调用。我有一个主页,其中所有内容都是异步加载的。加载页面时,有四个独立的调用按区域(顶部、左侧、右侧和底部)“绘制”页面,加载时我向用户展示典型的 ajax 旋转。因此,当浏览器收到请求时,我执行回调,并且不同的区域在不同的时间绘制。事实上,服务器的答案有时是混淆的,我的意思是,顶部的答案画在左边,反之亦然。

我尝试了一些解决方案,例如在每个请求中创建时间戳,以向浏览器和服务器表明每个请求都是不同的。

我还尝试在服务器中配置一些缓存参数,以防万一。

唯一可行的方法是将 request2 包含在 request2 的回调中,等等。

有人知道正确的方法或者曾经解决过这个问题吗?我不想进行链接请求。

谢谢

以下是我的意思的示例:

$(document).ready(function() {

$.get('/activity',Common.genSafeId(),function(data){$('#stream').html(data);$("#load_activity").addClass("empty");});
$.get('/messages',Common.genSafeId(),function(data){$('#message').html(data);$("#load_messages").addClass("empty");});
$.get('/deals',Common.genSafeId(),function(data){$('#new_deals_container').html(data);$("#load_deal").addClass("empty");});
$.get('/tasks',Common.genSafeId(),function(data){$('#task_frames').html(data);$("#load_task").addClass("empty");});});

html 是一个简单的 jsp,有四个容器,每个容器都有不同的 id。

最佳答案

关闭

Closures一开始有点令人兴奋。它们是 javaScript 和其他几种现代计算语言的一个功能。

闭包是由一个函数的执行实例形成的,该函数具有一个内部函数(通常是匿名事件处理程序或命名方法),该函数需要访问一个或多个外部变量(即位于外部函数内部但在外部函数外部的变量)内部函数)。令人兴奋的是,即使外部函数在内部函数执行时已完成并返回,内部函数仍保留对外部变量的访问!

此外,闭包捕获的变量只能被内部函数访问,而不能被产生闭包的更远的环境访问。例如,即使没有语言关键字“Public”和“Private”,此功能也允许我们创建具有私有(private)和公共(public)成员的类似类的结构。

通过内部函数使用外部变量来抑制 javaScript 的“垃圾收集”,从而使闭包成为可能,否则会在完成后的某个不确定点破坏外部函数的环境。

闭包对于良好、整洁的 javaScript 编程的重要性怎么强调也不为过。

在下面的代码中,函数 getData() 在每次调用时都会形成一个捕获 id1id2 (以及 url),它仍然可供匿名 ajax 响应处理程序使用($.get 的第三个参数)。

$(document).ready(function() {

function getData(url, id1, id2) {
$.get(url, Common.genSafeId(), function(data) {
$(id1).html(data);
$(id2).addClass("empty");
});
}

getData('/activity', '#stream', '#load_activity');
getData('/messages', '#message', '#load_messages');
getData('/deals', '#new_deals_container', '#load_deal');
getData('/tasks', '#task_frames', '#load_task');

});

因此,我们不是编写四个单独的处理程序,而是利用该语言形成闭包的能力并调用相同函数getData()四次。每次调用时,getData() 都会形成一个新的闭包,允许 $.get 的响应处理程序(在服务器响应时异步调用)来寻址其 DOM 元素。 p>

关于ajax - 同时多个ajax调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10150159/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com