2011-05-25 56 views
7

好吧,我知道這聽起來很通用。但我的意思是在AJAX層面。我試過使用Firebug來跟蹤NET連接和帖子,這是一個謎。有誰知道他們如何不間斷地使用網絡/瀏覽器來實現即時自動保存?Google文檔如何自動保存工作?

+1

'window.setInterval'與AJAX和一些條件? – mauris 2011-05-25 14:36:28

+0

不知道這是否正確 - 如果你看看控制檯,它似乎沒有做太多 – Shamoon 2011-05-25 16:29:58

回答

8

我的猜測(這只是一個猜測)是谷歌使用PUSH服務。這似乎是最可行的選擇,因爲他們的聊天客戶端(也集成在窗口中)也使用它來以最短的延遲傳送「實時」消息。

我敢打賭,他們有一個完整的設置,管理所有相關的連接併發送標誌來觸發特定元素。您不會看到連接三方,因爲初始頁面訪問建立連接,然後掛起頁面打開的整個持續時間。例如

  1. 您訪問
    • 瀏覽器建立[例如] api.docs.google.com [/例]連接並保持打開
  2. 客戶端代碼然後發送頁面各種命令並收到各種答覆。
  3. 這些命令來回發送,直到您:
    • 失去
    • 瀏覽器窗口關閉在這種情況下,它是重新建立連接(超時等)
的實施例

,如何看到,典型的通信:

SERVER:        CLIENT: 
-------        ------- 
            DOC_FETCH mydocument.doc 
DOC_CONTENT mydocument.doc 15616 ...  
            DOC_AUTOSAVE mydocument.doc 24335 ... 
            IM collaboratorName Hi Joe! 
IM_OK collaboratorName OK 
AUTOSAVE_OK mydocument.doc OK 

DOC_FETCH命令說我想要數據。服務器回覆相應的DOC_CONTENT <docname> <length> <contents>。然後客戶端觸發DOC_AUTOSAVE <docname> <length> <content>。考慮到潛在的同時請求的數量,我敢打賭他們在請求/響應中保留了「上下文」,因此在發送一些請求/響應之後,它可以被匹配。在這個例子中,它知道IM_OK匹配第二個請求(IM),並且AUTOSAVE_OK匹配第一個請求(AUTOSAVE) - 類似於AOL的IM協議的工作原理。

再次,這只是一個猜測

-

爲了證明這一點,使用像空靈,看看你能看到的信息在後臺傳輸。

+0

感謝@ Brad-Christie的回答,但是我不清楚如何實現它。 – 2016-02-24 13:09:49

相關問題