什么导致非常缓慢的ajax响应?

时间:2015-05-26 17:35:57

标签: javascript php jquery ajax icws

我写了一些PHP代码来帮助我连接到电话系统的REST API(即ICWS.php。)

然后为了让我的生活更轻松,我写了一个小脚本(即interations.php),它接受两个参数:方法和ID。这个脚本基本上会在我的PHP连接器中调用一个公共方法。

另外,我有另一个脚本(即p​​oll.php)。此脚本将每半秒ping一次API,以查看是否有新消息可用。我正在使用服务器端轮询来处理这个问题。下面的代码将显示poll.php

的方式
    while(1){
        //process Messages
        $icws->processMessages();
        //show the Calls Queue
        $result = $icws->getCallsQueue();
        //$current = $icws->getCurrentUserStatusQueue();
        echo 'event: getMessagingQueue' . "\n";
        echo 'data: ' . json_encode( array('calls' => $result));    
        echo "\n\n"; //required  

        ob_flush();
        flush(); 
        putToSleep($sleepTime);

    }
function putToSleep($val = 1){

    if( is_int($val) ){
        sleep($val);
    } else {
        usleep($val * 1000000);
    }
}

从我的网站(即.systemystem.html)开始,我启动服务器端轮询"每隔1/2秒对API进行一次ping操作。"从同一页面,我也可以拨打其他直接电话(即拨打7204536695);所有请求都是通过Ajax完成的。

这是我生成服务器端轮询的代码

    //Server Side Message Polling
    function startPolling(){

        var evtSource = new EventSource("poll.php");


        evtSource.addEventListener("getMessagingQueue", function(e) {
        var obj = JSON.parse(e.data);

          if(!obj.calls || obj.calls.length === 0){
              console.log('no messages');
              phoneKeyPad(false);
              return;
          }
          processMessages(obj.calls);

        }, false);
    }


    $(function(){
         startPolling();
    });

我面临的问题是,在进行ajax调用时,响应时间过长(+1分钟)。

似乎Apache服务器因使用其他应用程序变慢而变慢。

我可以检查什么以及如何解决此问题?

0 个答案:

没有答案