javascript - 使用 AJAX 的 session 启动非常慢

标签 javascript php jquery ajax twitter-bootstrap

我使用 Ajax 将另一个页面的内容加载到我的带有 Twitter Bootstrap 选项卡的 div 中。 我意识到 Ajax 加载请求的时间太长,所以我决定清理代码并只保留“session_start ()”。 而问题正是“session_start()”。


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

PHP WITH session_start() 加载 AJAX - 29.041733980179 毫秒
在没有 AJAX 的情况下加载带有 session_start() 的 PHP - 0.00010895729064941 毫秒

PHP WITHOUT session_start() 加载 AJAX - 1.6927719116211 毫秒


这是我的 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;

有人知道发生了什么吗?

最佳答案

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

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

关于javascript - 使用 AJAX 的 session 启动非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20267462/

相关文章:

php - 在 'input type="text"' 值中使用双引号不起作用,字符串在双引号处停止!

php - 单位换算 PHP

php - 是否可以在 mysql 或 PHP 或 CODEIGNITER 中搜索显示多个可能结果的多个单词

javascript - 从 json 中的内部数组获取值

javascript - 从远程 JSON 文件绘制 Highcharts 图表

javascript - fullpage.js 只会在窗口调整大小后滚动溢出

javascript - 当我进入源代码 View 时,如何跳转到 CKEditor 4 中的当前位置?

javascript - AngularJS展开和折叠问题

jquery - 在所有字段都有值之前禁用提交按钮

javascript - Jquery ID申请