为什么我的浏览器要等?

时间:2016-05-28 04:00:50

标签: php ajax laravel long-polling

第一个,感谢您看到我的帖子,我使用AJAX向服务器PHP(laravel)发送请求,服务器将处理请求(大约10秒),然后返回给AJAX。但是,当AJAX请求等待时,我打开其他浏览器来访问我的网页 - >它仍然等待10秒。我不明白??? 我的js



function pullRequest() {
  /* send request to server */
  var xhr = $.ajax({
    method: 'POST',
    url: 'pull?random_key='+Math.floor(Math.random()*10),
    data: {'_token':$('meta[name=csrf-token]').attr('content')},
    success: function(response) {
      /* pull request */
      pullRequest();
    },
  }); /* end ajax */
  $('a[href]').click(function() {
    xhr.abort();
  });
} /* end function pullRequest */

$(function() {
  // pullRequest();
  setTimeout('pullRequest()', 2000);
});




我的php

public function handle(Request $request) {
  $time = time()+50;
  while(1) {
    echo connection_status();
    if($this->hasNewMessages() || time() >= $time) {
      break;
    }
    continue;
  }
  return $this->messages;
}

我录制了一段关于它的视频。对不起,因为我不知道插入它。请关注链接youtube:https://www.youtube.com/watch?v=8jqPU3R-60I

感谢您阅读

1 个答案:

答案 0 :(得分:0)

使用命令php artisan serve,您实际上正在启动PHP的内置Web服务器。

如PHP手册中所述:

  

警告

     

此Web服务器旨在帮助应用程序开发。它也可用于测试目的或在受控环境中运行的应用程序演示。它不是一个功能齐全的Web服务器。它不应该在公共网络上使用。

如果您需要生产级别的安装或任何其他功能,则需要使用单独的Web服务器,例如Apache(您使用时会错误地使用它)。