jQuery Long Polling是一種AJAX編程模式,其中客戶端不斷向服務器提交請求,服務器在有新內容時返回響應,以實現近實時的更新。
通常,AJAX請求會立即獲取響應并關閉連接,但使用Long Polling,請求可以保持打開狀態,直到服務器有新內容可用或超時為止。
以下是使用jQuery Long Polling實現的簡單示例代碼:
function poll() { $.ajax({ url: 'server.php', timeout: 60000, success: function(data) { // 處理響應數據 poll(); // 重新啟動請求 }, error: function() { poll(); // 重新啟動請求 } }); } $(document).ready(function() { poll(); // 啟動首次請求 });
在此示例中,poll()函數通過使用jQuery.ajax()方法創建HTTP請求。timeout選項指定請求超時時間(以毫秒為單位),成功回調處理函數在收到響應時執行,而錯誤處理回調在請求失敗時執行。
由于poll()函數遞歸地調用自己,因此這個請求會一直保持打開狀態,直到服務器有新內容可用或超時為止,然后重新發起請求。
雖然Long Polling是一種有效的實時Web技術,但它并不是沒有缺點的。它與HTTP服務器和負載平衡器的行為可能不兼容,而且可能需要調整請求超時和服務器處理時間,以避免響應延遲或死鎖。
在決定使用Long Polling之前,開發人員應該了解其優缺點并考慮使用其他實時Web技術,如WebSocket或Server-Sent Events。