Ajax用PHP调用非常慢

时间:2013-11-28 12:23:20

标签: javascript php ajax jquery

我正在使用Ajax使用Twitter Bootstrap选项卡加载div中另一个页面的内容,但是ajax加载页面的时间太长。
没有Ajax页面加载速度非常快!

在ajax调用中加载页面:28.743376016617 ms
没有ajax的页面加载:0.00022506713867188 ms

这是ajax调用的代码:

    $(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

ob_start();
session_start();

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

exit;

/*
 * Here is the rest of the contents of the script, so I gave the 'exit' and even with the exit delay it that way!
*/

有谁知道发生了什么以及如何帮助我? PHP代码非常简单,耗时太长了!

谢谢!

3 个答案:

答案 0 :(得分:2)

您的Ajax是否从后端加载了需要时间来生成html的html?

如果没有Ajax,您可以加载更少的数据,这样就可以“快速运行”。

如果加载的数据不常见,则通过Async脚本加载。在页面加载后几秒钟加载ajax div。

  1. 取消ajax请求,如果这需要很长时间才能加载。

    $(document).ready(
    var xhr;
    
    var fn = function(){
        if(xhr && xhr.readyState != 4){
            xhr.abort();
        }
        xhr = $.ajax({
            url: 'ajax/progress.ftl',
            success: function(data) {
                //do something
            }
        });
    };
    
    var interval = setInterval(fn, 500);
    

    );

答案 1 :(得分:0)

请使用.ajax()调用而不是.load()。

试试这个:

$(contentID).html('<img src="<?php echo IMG_DIR; ?>loading/loading-large.gif" width="64" />');
$(contentID).ajax(
   url: contentURL, 
   type: "GET",//or POST
   success: function(data){
     $(contentID).html(data);
     console.log(data);//it will show the error log if any [optional]
   }
});

Check here for ajax call

答案 2 :(得分:0)

我有同样的问题,在添加标题后:

header("Content-Length: xxx")

它工作得非常快。