好吧,我知道这听起来很普通。但是我的意思是在AJAX级别上。我尝试使用Firebug跟踪NET连接和帖子,这是一个谜。有谁知道他们如何在不破坏网络/浏览器的情况下不断进行即时自动保存?
最佳答案
我的猜测(仅是猜测)是google使用了PUSH服务。考虑到他们的聊天客户端(也集成在窗口中),这似乎是最可行的选项,它也使用此功能以最小的延迟传递“实时”消息。
我敢打赌他们有一个完整的设置,可以管理与连接有关的所有事情,并发送标志来触发特定的元素。您不会看到连接触发,因为最初的页面访问会建立连接,然后会在您打开页面的整个过程中挂起。例如
我所看到的典型通信示例:
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协议(protocol)如何工作。同样,这只是一个猜测。
--
为了证明这一点,请使用诸如ethereal之类的工具,然后查看是否可以在后台看到正在传输的信息。
关于ajax - Google文档如何自动保存?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6126128/