好的,我知道这听起来很通用.但我的意思是在AJAX级别上.我曾尝试使用Firebug跟踪NET连接和帖子,这是一个谜.有没有人知道如何在不破坏网络/浏览器的情况下不断进行即时自动保存?
我的猜测(这只是一个猜测)是谷歌使用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
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之类的内容,看看您是否可以在后台看到信息传输.