天天看點

為jQuery的$.ajax設定逾時時間

 jQuery的ajax子產品封裝了非常強大的功能,有時候我們在發送一個ajax請求的時候希望能有一個逾時的時間,想讓程式在一段時間請求不到資料時做出一些回報。幸運的是jQuery為我們提供了這樣的參數:timeout。今天試了一下,做個記錄。

  首先在試驗之前,有一個一直搞不明白的東西,那就是預設的逾時時間是多少?這個配置在到底在什麼地方設定。jQuery中?還是apache中?PHP中?

  經過一番搜尋,暫得到如下結論:

  ①jQuery沒有預設的逾時時間,隻可以通過參數來配置;

  ②apache2的預設逾時時間是300秒,但是我在httpd.conf中設定Timeout 10,壓根沒起到作用,不明白是怎麼回事

  ③php.ini中,隻找到一個max_execution_time來配置腳本最長執行時間,貌似也沒什麼關系

  智商捉急。。。哪位高手知道,一定告訴一下我啊~~

  下面來看jQuery中的timeout參數,值為Number類型,機關為毫秒。為了在逾時的時候執行我們定義好的處理函數,可以把它放在error參數中,如下代碼:

為jQuery的$.ajax設定逾時時間
為jQuery的$.ajax設定逾時時間

  s.php中的内容為sleep(100)。這樣在3秒後會輸出error:timeout,textStatus即為錯誤的内容。這個還是很用的,如果你的error函數中還要進行其他處理,為了不與逾時混在一起,可以這麼寫:

為jQuery的$.ajax設定逾時時間
為jQuery的$.ajax設定逾時時間

  還可以把函數寫在complete中,因為無論success還是error,complete函數都會執行。

本文轉自呂大豹部落格園部落格,原文連結:http://www.cnblogs.com/lvdabao/p/3383240.html,如需轉載請自行聯系原作者