好的,我知道这听起来很通用。但我的意思是在AJAX级别上。我曾尝试使用Firebug跟踪NET连接和帖子,这是一个谜。有没有人知道他们如何在不破坏网络/浏览器的情况下不断进行即时自动保存?
答案 0 :(得分:8)
我的猜测(这只是一个猜测)是谷歌使用PUSH服务。这似乎是最可行的选择,因为他们的聊天客户端(也集成在窗口中)也使用它来以最小的延迟传递“实时”消息。
我打赌他们有一个完整的设置来管理所有相关的连接,并发送标志来触发特定的元素。您将看不到连接分支,因为初始页面访问建立了连接,然后在您打开页面的整个持续时间内挂起。 e.g。
示例,我如何看待,典型的沟通:
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协议的工作原理。
再次,这只是猜测。
-
为了证明这一点,请使用像ethereal这样的东西,看看你是否能看到在后台传输的信息。