xjcallen 2017-05-08 20:51:31 3569次浏览 3条回复 0 0 0

在开发应用中,相信大家都有遇到一个页面分成几部分同时利用AJAX加载进来的情况,因为这样也许会比一个页面一次加载要来的快一些;

但是问题来了:

如果我的一个页面分成3个块来AJAX加载,加载完成并把他们显示出来

那么我在加载第一个块的时候将后台地址访问的PHP程序 sleep(20), 那么第二,第三块内容也需要等待20秒之后才会加载完成;

原因听说是打开了Session所导致了阻塞,请问怎么解决这个阻塞的问题呢,让他们各自负责加载自己的内容,谁先加载完成谁就先显示出来;应该怎么做呢?

  • 回复于 2017-05-08 20:57 举报

    我知道此网站没人有回复,但还是孤注一掷,试试问下吧,也许有大牛或者好心人在!

  • 回复于 2017-05-09 11:26 举报

    贴出你前端的代码

    4 条回复
    回复于 2017-05-10 23:04 回复

    //获取内容

            $.ajax('/mod/con/index.html', {
                type: 'GET',
                dataType: 'HTML',
                beforeSend: function () {
                    $('body').append('LOADING');
                }
            }).done(function (html) {
                $('body').append(html);
            }).fail(function () {
                $('body').append('ERROR');
            });
    
    回复于 2017-05-10 23:06 回复

    很普通的一段JQ AJAX代码 在一个页面同时三次,当然地址是不一样

    回复于 2017-05-11 17:28 回复

    跟ajax没关系,你php代码写的有问题吧,你把三个地址分别在浏览器里打开,正常情况是第一个需要等20s,后两个是立马能打开的。如果后两个也要等20s,就是php代码有问题

    回复于 2017-05-15 22:19 回复

    我知道是那里问题、 就是不知道有什么办法解决。。。。。

  • 回复于 2017-05-22 16:22 举报

    大致测试了一下,正常情况下,不会出现这个问题.
    如果出现了,可以查一下你的服务器中nginx或php的同时连接数,如果设置1,那么就等于是同步阻塞了.
    在有多个连接数的情况下不会出现阻塞的问题.

您需要登录后才可以回复。登录 | 立即注册