iframe - 需要对 Comet 和长轮询概念进行解释(特别是隐藏的 iframe 技术)

标签 iframe comet long-polling

我确实理解它的基本思想。但我见过的大多数实现除了让我困惑之外什么也没做 - 我发现自己无法完全理解 cometd 和长轮询的概念......简单地说,我要求对这些想法进行简单的解释。我对隐藏 iframe 轮询技术的解释特别感兴趣。执行什么、请求什么等。

此外,与经典的 ajax 方法相比,它有哪些优点? (除了减少流量和更实时的感觉)。

谢谢。

最佳答案

following article 中对该技术进行了很好的解释。 。核心思想在于chunked transfer encoding HTTP 技术。页面中包含一个隐藏的 iframe,它指向使用分块编码的服务器端脚本。在分块编码中,响应不会完全一次性发送并且流会关闭。服务器不会提前说明要发送多少数据,因此浏览器保持 channel 打开。然后,当服务器想要将一些数据推送到客户端时,它只需发送一 block 代表 JavaScript 函数的响应。浏览器在客户端接收并执行该函数。这样,当发生某些事件(例如服务器上的某些数据更改)时,服务器可以成功推送信息,...

Also, what are the real advantages of it over the classic ajax approach? (besides the reduced traffic and more real-time feeling).

这些优势还不够吗?流量减少意味着应用程序响应速度更快。您是否知道,像谷歌和亚马逊这样的大型网站进行了研究,并明确限制了他们的服务器,以便将响应时间增加几毫秒。我不记得具体的情况了,但他们是明目张胆的:这样做之后他们失去了大约 70% 的客户。请记住:网络应用程序最重要的功能(不仅仅是顺便说一下)是它的响应能力。

所以它基本上是 PULL (Ajax) 与 PUSH (Comet) 的对比。当客户端数量开始增加时,PUSH 技术可以更好地扩展。

关于iframe - 需要对 Comet 和长轮询概念进行解释(特别是隐藏的 iframe 技术),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7292954/

相关文章:

javascript - 实现 COMET 客户端

android - 如何将数据从 Android 应用程序发送到服务器?

ios - iOS 中轮询网络服务任务完成情况的最佳实践

testing - 在 TestCafe 中切换到 iframe 上下文后找不到元素

html - iframe 在 IE 中总是在最前面

php - 使用 socket.io node.js 和传入消息的通知系统的架构实现和设计

ajax - Node.js 长轮询事件循环破坏了整个代码

javascript - 嵌入 iframe 不返回响应式设计?

iframe - iframe 对页面加载时间有影响吗?为什么不?

javascript - 为什么在使用长轮询时设置客户端超时?