在第一次ajax调用后,php执行时间会增加

时间:2015-03-22 14:08:07

标签: php jquery mysql ajax

在我们的ajax调用中,我们尝试从数据库中选择一些值,这些值需要存储到我们在脚本运行时创建的一个临时表中,然后我们尝试执行一些操作,结果将通过json格式传递给Ajax调用脚本。对于第一个ajax呼叫需要15秒。那么第二次它需要19秒。我不知道为什么它比第一次Ajax呼叫需要更多4秒。我认为这是缓冲区大小问题然后我使用 CCleaner 软件清理了我的系统它只需要14秒。为了做到这一点,我们在ajax调用中也使用 ob_flush(); flush(); 函数和 cache:false 。它也在做同样的事情。但仍需要19秒。你能否告诉我错误是什么或需要做什么?我的意思是需要调用哪个php函数来做同样的事情?

这个ajax电话

                 var form = $('#chart_form');
             var formdata = false;
             if(window.FormData){
                 formdata = new FormData(form[0]);
             }
             var formAction = form.attr('action');



            $.ajax({
           url: 'process.php',
           type: 'POST',
               cache       : false,
               data        : formdata ? formdata : form.serialize(),
               contentType : false,
               processData : false,
                dataType: "json",
                timeout : 10000000,
                beforeSend: function () { 
    $('#wait').html('<span style="position: fixed;left: 50%;top: 50%; transform: translate(-50%, -50%); color:#3C8DBC "><img src="images/waiting.gif" alt="loading" width="200" height="200" style="padding-left:85px"><br /><br /><span style=" font-weight: 700; font-size: 18px">Please wait,Chart is being Generated</span></span>');
    $('#wait').css({display: "block" });

    $('#message').css({display: "block" });

            },

           success: function(data) 
              {
//do operation
}
         complete: function(r) {
                       //alert(r.responseText);

        $('#message').css({display: "none" });
        $("#wait").css({display: "none" });
    $(window).scrollTop(200); 

        }
});

在ajax页面中,表有300万个数据。我们正在选择11,000个数据。

<?php 
ob_flush();
        flush();
$client=trim($_POST['client']);
 $ip=trim($_POST['IP']);
$port=trim($_POST['port']);
$var=trim($_POST['variable']);
$start=trim($_POST['start']);
$end=trim($_POST['end']);
$new_start = date("Y-m-d H:i", strtotime($start));
$new_end = date("Y-m-d H:i", strtotime($end));
$t=time();

$character='2346789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
$total_no_char=strlen($character)-1;
$final_char=mt_rand(0,$total_no_char);
for($i=0;$i<3;$i++)
{
    $string .= $character[mt_rand(0,$total_no_char)];
}

$table_name=$t.'_'.$string.'_list';
$create_table="
CREATE TABLE $table_name (status varchar(100),moddate datetime,  
INDEX mod_index (moddate)) SELECT `status`,`moddate`
   FROM `globstats_graph`
   WHERE Cname='$client' AND IP='$ip'
   AND Port='$port' AND Variable='$var' AND status REGEXP '^[0-9]+$|^ON$'
   AND moddate between '$new_start' and '$new_end'";
mysql_query($create_table);
?>

之后我们在临时表中进行一些操作。并以json格式传递响应。在json格式中,我传递两个array.each数组有90个值

0 个答案:

没有答案