Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何对网页进行实时更新?_Javascript - Fatal编程技术网

Javascript 如何对网页进行实时更新?

Javascript 如何对网页进行实时更新?,javascript,Javascript,谷歌的GMail服务之所以这么做,是因为它集成了Google Talk,而Etherpad(现在是typewith.me)使谷歌Wave使用的系统出名。当其他用户更改页面时,所有此类系统都会立即有效地更新用户正在处理的页面。当发生更改时,很容易告诉服务器已经发生了更改,但是让客户机更新自己就更难了 这种实时编辑是如何工作的?它只是让客户端每秒ping服务器数十次以进行更新吗?好的,他们使用某种形式的AJAX。但是,我建议您通过jQuery使用AJAX库。如果您使用jQuery,AJAX会简化很多

谷歌的GMail服务之所以这么做,是因为它集成了Google Talk,而Etherpad(现在是typewith.me)使谷歌Wave使用的系统出名。当其他用户更改页面时,所有此类系统都会立即有效地更新用户正在处理的页面。当发生更改时,很容易告诉服务器已经发生了更改,但是让客户机更新自己就更难了


这种实时编辑是如何工作的?它只是让客户端每秒ping服务器数十次以进行更新吗?

好的,他们使用某种形式的AJAX。但是,我建议您通过jQuery使用AJAX库。如果您使用jQuery,AJAX会简化很多。

您可以使用。

有很多选择,但基本上我建议您研究一下。我认为我没有足够的能力把它正确地概括下来,所以我会让它继续下去

事实上,谷歌的语音和视频应用于这些系统


关于AJAX,我认为它是一个通信渠道,而不是一个多人交换的平台或协议。您也可以回答“通过http使用xml!”,但仍然保持相同的观点:)

使用Ajax,web应用程序可以在后台从服务器异步检索数据,而不会干扰现有页面的显示和行为。Ajax技术的使用导致了web页面上交互或动态界面的增加。通常使用XMLHttpRequest对象检索数据。尽管名称不同,实际上并不需要使用XML,请求也不需要是异步的


Javascript/Ajax允许您发送要在客户端(即通过浏览器)执行的代码。 现在,如果您定义了一个循环,每5秒检查一次服务器上的新消息,您可以“实时”更新网页(加上服务器处理请求和发送响应的时间)或类似的时间。一个实际的例子是RoR原型定期调用远程Ajax助手


希望这有帮助

我建议对异步JS使用AJAX和jQuery


正如大家所说的。。阿贾克斯

客户端在30秒后不断询问服务器是否有什么新的事情要做。此外,还可以设置ajax请求的超时值。把时间调高一点。。只要有新的东西,服务器就会回复

服务器无法以其他方式要求客户端加载一些数据


如果您正在考虑在同一行上实现某些东西,请查找strophe.js,它是一个XMPP js库,名为“AJAX”。查找。@沮丧:AJAX允许您更新页面,但实际上不允许您实时更新页面。@Paul:我想他在问更多的“AJAX如何工作?”看看comet、cometd、node.js和Bayeux协议。@沮丧:AJAX允许Javascript向服务器发出请求。但它不允许服务器向客户机发出请求,这是此类系统工作所必需的。除非您将AJAX放入轮询循环,否则每个客户端每秒大约5个请求,这是不可行的,而且更新速度仍然不如GTalk、Etherpad和friends。AJAX不允许您实时更新。它可以让你更新,是的,但它本身并不能提供以太和朋友们所需要的那种速度的更新。5秒远远不够快。5秒只是一个例子。无论如何,总有固定的延迟(服务器响应时间)和可变的延迟,可以是从网络拥塞到共享主机服务器减速等任何因素。更不用说,实时“感觉”的因素还取决于生成更新所需的数据量。AJAX允许您更新页面,但不允许您根据服务器的突发奇想实时执行。AJAX无法解决此问题。它允许客户端从服务器请求更多数据,但不允许服务器向客户端发出请求。Google Talk是根据XMPP实现的,是的,但不是Gmail的浏览器组件。浏览器不理解XMPP——您需要以某种方式实现一个XMPP Javascript客户端,并且需要一个特定的服务器来实现。我认为XMPP Javascript客户端可以与XMPP服务器通信。不过我不太确定。但通过查看维基百科,我得出了这样的结论:GoogleWave在其根上使用XMPP,这是一篇关于Comet等长轮询服务的好文章-1:1。已经在这里复制了其他答案。2.比所说的复制品晚3.5小时。3.错误率为110%。不要说“从来没有”——因为人们会给出这样的答案,结果你脸上都是鸡蛋。不知道是什么让你的睡衣打结了。我的脸还是干净的:)。。。引用维基百科“Comet是一种web应用程序模型,其中长期持有的HTTP请求允许web服务器将数据推送到浏览器”和“服务器推送:服务器和客户端之间的连接保持打开,服务器在可用时发送数据”。连接会保持打开很长时间(或永远),直到服务器有新的东西。顺便说一句,一定要查找strophe.js,它是XMPP BOSH的库。。。Comet提到的备选方案之一。请把我的错误率降低到110%以下。。漂亮吗?