同时多个ajax通话

前端之家收集整理的这篇文章主要介绍了同时多个ajax通话前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我开发了一些网站,我总是绊倒一个点:多个ajax电话。我有一个主页,其中所有的内容都是异步加载的。当页面加载时,有四个独立调用按区域(顶部,左侧,右侧和底部)“绘制”页面,加载时,我向用户显示典型的ajax旋转。因此,当浏览器接收到请求时,执行回调,并且不同的区域在不同的时间绘制。事实是,服务器的答案有时会混淆,我的意思是,顶部的答案是画在左边,反之亦然。

我已经尝试过一些解决方案,如在每个请求中创建时间戳,以向浏览器和服务器指示每个请求是不同的。

另外我试图在服务器中配置缓存的一些参数,以防万一。

作品的唯一方法是将请求2包含在一个回调中。

任何人知道这样做的正确方法或曾经殴打这个问题?我不想做链接请求。

谢谢

这是我的意思的一个例子:

$(document).ready(function() {

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

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

关闭

起初,Closures有点头脑。它们是javaScript和其他几种现代计算机语言的特征。

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

此外,由封闭物捕获的变量只能由内部功能访问,而不能用于使封闭件成为现实的进一步的环境。这个功能允许我们,例如,即使没有语言关键字“公共”和“私人”,也可以用私人和公共成员创建类似类的结构。

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

关闭到好的,整洁的javaScript编程的重要性不能超过。

在下面的代码中,函数getData()在每次调用时都会形成一个闭包捕获id1和id2(和url),这个匿名ajax响应处理程序($ .get的第三个参数)仍然可用。

$(document).ready(function() {

    function getData(url,id1,id2) {
        $.get(url,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元素。

原文链接:https://www.f2er.com/ajax/160429.html

猜你在找的Ajax相关文章