微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 使用AJAX,Session Start非常慢

我使用Ajax通过Twitter Bootstrap选项卡加载我div中另一个页面内容.
我意识到Ajax加载请求的时间太长,所以我决定清理代码并只留下’session_start()’.
而问题恰恰是’session_start()’.

Microtime用于测量请求的时间.
以下是测试结果:

带有使用AJAX加载的session_start()的PHP – 29.041733980179 ms
没有AJAX加载的session_start()的PHP – 0.00010895729064941 ms

PHP没有用AJAX加载的session_start() – 1.6927719116211 ms

这是我的Javascript代码

$(function() {
        $("#MainTabs").tab();
        $("#MainTabs").bind("show", function(e) {
          var contentID  = $(e.target).attr("data-target");
          var contentURL = $(e.target).attr("href");
          if (typeof(contentURL) != 'undefined')

        $(contentID).html('<img src="<?PHP echo IMG_DIR; ?>loading/loading-large.gif" width="64" />').load(contentURL, function(){
            $("#MainTabs").tab();
        });
          else
        $(contentID).tab('show');
        });
        $('#MainTabs a:first').tab("show");
});

这是我的PHP代码

<?PHP
    $start = microtime(TRUE); // Start counting

    set_time_limit(0);

    // session_start();

    $temp = microtime(TRUE) - $start;
    echo $temp; 

    exit;

有谁知道发生了什么?

解决方法:

我有几乎相同的问题,它被称为会话锁.当您执行多个ajax调用时,服务器会阻止后一个调用的会话写入,因此他们必须等待先前的调用结束.完成会话后使用session_write_close()解锁其他调用.

这里有更多信息:session_write_close() on php.net

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐