Google文档如何自动保存?

Sha*_*oon 8 ajax google-docs

好的,我知道这听起来很通用.但我的意思是在AJAX级别上.我曾尝试使用Firebug跟踪NET连接和帖子,这是一个谜.有没有人知道如何在不破坏网络/浏览器的情况下不断进行即时自动保存?

Bra*_*tie 8

我的猜测(这只是一个猜测)是谷歌使用PUSH服务.这似乎是最可行的选择,因为他们的聊天客户端(也集成在窗口中)也使用它来以最小的延迟传递"实时"消息.

我打赌他们有一个完整的设置管理所有相关的连接,并发送标志来触发特定的元素.您将看不到连接分支,因为初始页面访问建立了连接,然后在您打开页面的整个持续时间内挂起.例如

  1. 您访问该页面
    • 浏览器建立了与[example] api.docs.google.com [/ example]的连接并保持打开状态
  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
Run Code Online (Sandbox Code Playgroud)

DOC_FETCH命令在哪里说我想要数据.服务器回复相应的DOC_CONTENT <docname> <length> <contents>.然后客户端触发DOC_AUTOSAVE <docname> <length> <content>.考虑到潜在的同时请求的数量,我敢打赌他们在请求/响应中保留"上下文",因此在发送内容之后它可以匹配.在这个例子中,它知道IM_OK匹配第二个request(IM),并AUTOSAVE_OK匹配第一个请求(AUTOSAVE) - 类似于AOL的IM协议如何工作.

再次,这只是猜测.

-

要证明这一点,请使用ethereal之类的内容,看看您是否可以在后台看到信息传输.