首頁 > 後端開發 > php教程 > javascript - ajax請求終止後,要怎麼讓請求的php也終止? ?

javascript - ajax請求終止後,要怎麼讓請求的php也終止? ?

WBOY
發布: 2016-09-08 08:43:53
原創
1471 人瀏覽過

我做了一個 網頁版的檢索功能。

javascript - ajax請求終止後,要怎麼讓請求的php也終止? ?

由前台發起搜索,後台執行搜索,將搜索結果返回。

碰到文件夾搜索,又文件夾下文件數量多的時候(2萬以上),搜索時間很長(2分鐘左右才能得出結果),有的時候我很沒有耐心等下去,就點了停止搜尋.

<code>  // 终止搜索
  stopSearch: function(){
    console.log('xhr请求集合: ' , this.reqList);
    for (var i = 0; i < this.reqList.length; ++i)
      {
        if (this.reqList[i].readyState !== 0 || this.reqList[i].status !== 200) {
          this.reqList[i].abort();
        }
      }
  } 
  </code>
登入後複製
登入後複製

點擊停止搜尋後,的確前台是停止了:

javascript - ajax請求終止後,要怎麼讓請求的php也終止? ?

可是後台php 腳本卻仍在運行(而且我設定了php腳本運行的最長時間為3min),每次頁面刷新等好久(1min多),這還是比較老實的情況下(只發起一個),若是等到鳥火的時候,滑鼠狂點,那估計我只好重啟伺服器了...汗(以下是狂點的後果,才點兩三次,最長的請求時間就達到5min了...)!

javascript - ajax請求終止後,要怎麼讓請求的php也終止? ?

有沒有辦法在停止請求的時候,也終止後台php腳本的運作? ?

回覆內容:

我做了一個 網頁版的檢索功能。

javascript - ajax請求終止後,要怎麼讓請求的php也終止? ?

由前台發起搜索,後台執行搜索,將搜索結果返回。

碰到文件夾搜索,又文件夾下文件數量多的時候(2萬以上),搜索時間很長(2分鐘左右才能得出結果),有的時候我很沒有耐心等下去,就點了停止搜尋.

<code>  // 终止搜索
  stopSearch: function(){
    console.log('xhr请求集合: ' , this.reqList);
    for (var i = 0; i < this.reqList.length; ++i)
      {
        if (this.reqList[i].readyState !== 0 || this.reqList[i].status !== 200) {
          this.reqList[i].abort();
        }
      }
  } 
  </code>
登入後複製
登入後複製

點擊停止搜尋後,的確前台是停止了:

javascript - ajax請求終止後,要怎麼讓請求的php也終止? ?

可是後台php 腳本卻仍在運行(而且我設定了php腳本運行的最長時間為3min),每次頁面刷新等好久(1min多),這還是比較老實的情況下(只發起一個),若是等到鳥火的時候,滑鼠狂點,那估計我只好重啟伺服器了...汗(以下是狂點的後果,才點兩三次,最長的請求時間就達到5min了...)!

javascript - ajax請求終止後,要怎麼讓請求的php也終止? ?

有沒有辦法在停止請求的時候,也終止後台php腳本的運作? ?

沒有,你能做的就是優化你的搜尋效能

只有從優化搜尋效能上下手了。 HTTP協定並不存在向後台發起請求終止的“請求”,如果前端伺服器採用nginx的話,PHP應用伺服器甚至不知道客戶端已經斷開了連線。
這種情況,只能從優化後台入手。

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板