簡體   English   中英

與AJAX相反

[英]Opposite of AJAX

有沒有辦法實現服務器觸發的通信來更新PHP中的頁面(而不是整個頁面)?

換句話說,有沒有辦法實現服務器啟動通信的“修改”AJAX?

您無法打開從服務器到客戶端的連接。 您需要從客戶端到服務器進行某種輪詢。 您可以查看COMET或在設定的時間段后輪詢服務器以檢查新內容。

您需要的是SSE (服務器發送事件)。 唯一的缺點是IE還沒有支持它,所以你可能也需要實現一些功能檢測(例如,使用modernizr.js )並使用長輪詢SSE,具體取決於你的瀏覽器是否支持SSE (或者只是使用SSE polyfill ,非常幸運)。
為什么你可能想要實現這兩種技術而不是支持良好支持的長輪詢 服務器發送的事件與輪詢

這是一個關於PHP實現的教程: http//www.w3schools.com/html/html5_serversentevents.asp

SSE給你的一個很好的解釋:

HTML5引入了一個API來處理Server-Sent Events。 SSE背后的主要思想很簡單:網頁訂閱Web服務器上的流更新的事件源。 網頁不必經常輪詢服務器以檢查更新(正如我們使用AJAX輪詢所做的那樣) - 它們會自動出現。 請注意,客戶端上的腳本只能監聽更新,不能發布任何內容(將其與客戶端可以訂閱和發布的Web套接字進行比較)。 因此,所有發布功能都由服務器執行。

你需要看一些叫做各種名字的東西,比如Comet,AJAX Push,Server Push等。

http://en.wikipedia.org/wiki/Comet_(programming ))

它保持HTTP連接打開,以便在某個時間點接收來自服務器的通信。

是的,您可以在某些較新的瀏覽器(Chrome)中使用長輪詢HTTP或Web套接字。

你說的是“反向ajax”,有時候是“彗星”。 反向ajax實際上不是http規范的一部分,它有點像黑客。 本質上,它涉及保持打開HTTP請求,服務器隨時發回響應。 雖然這不是為了佯裝,但說實話,99%的申請可能不值得壓力。 您需要一個彗星服務器來處理和管理所有打開的連接。 認真考慮自動刷新常規的ajax調用或其他東西。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM