问题标签 [long-polling]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 在 XMLHttpRequest 期间 Chrome 的加载指示器一直在旋转
我正在编写一个 AJAX 网络应用程序,它使用 Comet/Long Polling 来保持网页最新,我注意到在 Chrome 中,它将页面视为一直在加载(选项卡的图标一直在旋转)。
我认为这对于 Google Chrome + Ajax 来说是正常的,因为即使是 Google Wave 也有这种行为。
那么今天我注意到 Google Wave 不再保持加载图标旋转,有人知道他们是如何解决这个问题的吗?
这是我的ajax调用代码
c# - 我应该如何为 ajax 请求实现长轮询的 C# 服务器端部分?
我的架构涉及浏览器每 3 秒通过 ajax 轮询一次更新,我想将其更改为长轮询。
我希望有 1, 2.. {n} 个客户端长轮询,等待更新,并在服务器上发生一些事情以指示等待的客户端返回。我的第一个想法是使用EventWaitHandle
,如果我只想支持 1 个客户端,我可以轻松做到这一点。我只是有一个会阻止客户端,也许有超时,也许不是。无论哪种方式,an只允许我支持 1 个客户端(因为它只唤醒 1 个等待线程)并且我想要 n 个客户端。AutoResetEvent
WaitHandle
WaitOne
AutoResetEvent
我很确定我需要使用 a ,但我不确定何时调用它(唤醒线程时)。我应该只是在和之间的一些任意数量ManualResetEvent
WaitHandle
Reset
Set
Thread.Sleep
Set
Reset
吗?
在伪代码中,唤醒逻辑是
- 得到
ManualResetEventWaitHandle
- 称呼
Set
- 确保所有等待的客户端都已唤醒,同时防止新请求通过
- 现在打电话
Reset
,所有等待的客户都收到了他们的更新
这是我遇到困难的第 3 行。目前我正在折腾拥有一个LastTxID
让客户端/服务器维护并可能使用 2 个等待句柄的想法。然而,在我对这个实现发疯之前,我想在这里获得反馈,看看他们将如何实现唤醒逻辑。
编辑:假设我已经通过调整 IIS 或通过 WCF 或其他解决方案托管来解决与最大并发用户数相关的问题。我只想关注清醒的逻辑。
javascript - 为什么设置 document.domain 也需要我在所有弹出窗口和 iframe 中设置它?
我正在为聊天脚本使用长轮询 iframe 解决方案。不幸的是,这需要我在 iframe 和主文档中设置 document.domain='yourdomain.com',因为 iframe 是一个子域调用。
最大的问题是……现在我所有其他使用弹出窗口和 iframe 的脚本都被破坏了。他们现在要求我也将 document.domain 放入其中。它确实修复了它,但这根本不是一个理想的解决方案。有没有其他方法可以解决这个问题?
jquery - 如何停止 jQuery 长轮询请求?
我在用着...
对于长轮询请求。有时我有必要停止当前的请求。这可能吗?
php - 将 nodejs 与 php 应用程序集成的建议
我有一个用 PHP 编写的现有应用程序(使用 Kohana 框架),我想做长轮询。从我读到的一些内容看来,使用 PHP 进行长轮询似乎是不可取的,使用 nodejs 之类的东西是更好的选择。我的问题是将nodejs(或其他一些非常适合长轮询的工具)与现有应用程序集成的最佳方法是什么?
为了澄清,我的应用程序基本上是一个浏览器插件,您可以使用它向其他人组发送数据。发送该数据时,我希望收件人(如果他们在线并且还具有浏览器插件)立即接收该数据并得到通知。
jquery - 如何防止 FireFox 通过长轮询请求“旋转”?
我正在使用以下内容进行长轮询请求...
在 30 秒过去或有信息要发送(长轮询)之前,请求不会完成。
问题是 Firefox 是唯一会在底部显示“Waiting for URL...”的浏览器。有什么办法可以防止这种情况发生吗?
c# - 异步调用的“加载”网页
我在 ASP.NET / C# 中有一个简单的网页。目前,要完全呈现数据,我需要调用在后台线程上运行的代码块,并且可能需要几分钟才能完成。我已经明白了(使用页面声明上的 async 属性)执行并在完成后用 html 正常返回。我想做的是让我立即返回某种“加载页面”,然后在后台工作完成后更新该页面。现在,在处理后台工作时,页面上什么也没有。任何关于最佳方式或聪明方式的想法将不胜感激!
谢谢,
西格
c# - 如何多次向网络浏览器发送数据以响应一个请求?
我的网页上有一个表单,它允许向我的网站提交许多查询,每个查询都在 TextArea 中的单独一行上。因为等待所有查询完成的时间太长,所以我想在每个查询完成后更新网页 - 将一个查询的结果发送到 Web 浏览器,新结果应该附加到网页上已经存在的旧结果中。
如何在 ASP.NET MVC 2 中执行此操作?
我将不胜感激有用的答复。
更新
感谢您的所有回答,但我决定在 Web 浏览器中使用 JavaScript 来轮询服务器以获取数据,这是我的问题 Can't disable jQuery cache
blazeds - 对于低带宽网络,最好的 BlazeDS 轮询方法是什么?
我想知道 BlazeDS 轮询配置,简单或长轮询,是低带宽网络的最佳选择。
comet - DreamHost 上的彗星和长轮询请求?
是否有任何解决方案可以在 DreamHost 或其他我无权调整 apache 的共享托管环境上运行此类操作?