问题标签 [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.

0 投票
4 回答
25760 浏览

javascript - 在 XMLHttpRequest 期间 Chrome 的加载指示器一直在旋转

我正在编写一个 AJAX 网络应用程序,它使用 Comet/Long Polling 来保持网页最新,我注意到在 Chrome 中,它将页面视为一直在加载(选项卡的图标一直在旋转)。

我认为这对于 Google Chrome + Ajax 来说是正常的,因为即使是 Google Wave 也有这种行为。

那么今天我注意到 Google Wave 不再保持加载图标旋转,有人知道他们是如何解决这个问题的吗?

这是我的ajax调用代码

0 投票
1 回答
4645 浏览

c# - 我应该如何为 ajax 请求实现长轮询的 C# 服务器端部分?

我的架构涉及浏览器每 3 秒通过 ajax 轮询一次更新,我想将其更改为长轮询

我希望有 1, 2.. {n} 个客户端长轮询,等待更新,并在服务器上发生一些事情以指示等待的客户端返回。我的第一个想法是使用EventWaitHandle,如果我只想支持 1 个客户端,我可以轻松做到这一点。我只是有一个会阻止客户端,也许有超时,也许不是。无论哪种方式,an只允许我支持 1 个客户端(因为它只唤醒 1 个等待线程)并且我想要 n 个客户端。AutoResetEvent WaitHandleWaitOneAutoResetEvent

我很确定我需要使用 a ,但我不确定何时调用它(唤醒线程时)。我应该只是在和之间的一些任意数量ManualResetEvent WaitHandleResetSetThread.SleepSetReset吗?

在伪代码中,唤醒逻辑是

  • 得到ManualResetEventWaitHandle
  • 称呼Set
  • 确保所有等待的客户端都已唤醒,同时防止新请求通过
  • 现在打电话Reset,所有等待的客户都收到了他们的更新

这是我遇到困难的第 3 行。目前我正在折腾拥有一个LastTxID让客户端/服务器维护并可能使用 2 个等待句柄的想法。然而,在我对这个实现发疯之前,我想在这里获得反馈,看看他们将如何实现唤醒逻辑。

编辑:假设我已经通过调整 IIS 或通过 WCF 或其他解决方案托管来解决与最大并发用户数相关的问题。我只想关注清醒的逻辑。

0 投票
1 回答
449 浏览

javascript - 为什么设置 document.domain 也需要我在所有弹出窗口和 iframe 中设置它?

我正在为聊天脚本使用长轮询 iframe 解决方案。不幸的是,这需要我在 iframe 和主文档中设置 document.domain='yourdomain.com',因为 iframe 是一个子域调用。

最大的问题是……现在我所有其他使用弹出窗口和 iframe 的脚本都被破坏了。他们现在要求我也将 document.domain 放入其中。它确实修复了它,但这根本不是一个理想的解决方案。有没有其他方法可以解决这个问题?

0 投票
2 回答
1834 浏览

jquery - 如何停止 jQuery 长轮询请求?

我在用着...

对于长轮询请求。有时我有必要停止当前的请求。这可能吗?

0 投票
2 回答
6135 浏览

php - 将 nodejs 与 php 应用程序集成的建议

我有一个用 PHP 编写的现有应用程序(使用 Kohana 框架),我想做长轮询。从我读到的一些内容看来,使用 PHP 进行长轮询似乎是不可取的,使用 nodejs 之类的东西是更好的选择。我的问题是将nodejs(或其他一些非常适合长轮询的工具)与现有应用程序集成的最佳方法是什么?

为了澄清,我的应用程序基本上是一个浏览器插件,您可以使用它向其他人组发送数据。发送该数据时,我希望收件人(如果他们在线并且还具有浏览器插件)立即接收该数据并得到通知。

0 投票
1 回答
624 浏览

jquery - 如何防止 FireFox 通过长轮询请求“旋转”?

我正在使用以下内容进行长轮询请求...

在 30 秒过去或有信息要发送(长轮询)之前,请求不会完成。

问题是 Firefox 是唯一会在底部显示“Waiting for URL...”的浏览器。有什么办法可以防止这种情况发生吗?

0 投票
3 回答
1508 浏览

c# - 异步调用的“加载”网页

我在 ASP.NET / C# 中有一个简单的网页。目前,要完全呈现数据,我需要调用在后台线程上运行的代码块,并且可能需要几分钟才能完成。我已经明白了(使用页面声明上的 async 属性)执行并在完成后用 html 正常返回。我想做的是让我立即返回某种“加载页面”,然后在后台工作完成后更新该页面。现在,在处理后台工作时,页面上什么也没有。任何关于最佳方式或聪明方式的想法将不胜感激!

谢谢,

西格

0 投票
3 回答
914 浏览

c# - 如何多次向网络浏览器发送数据以响应一个请求?

我的网页上有一个表单,它允许向我的网站提交许多查询,每个查询都在 TextArea 中的单独一行上。因为等待所有查询完成的时间太长,所以我想在每个查询完成后更新网页 - 将一个查询的结果发送到 Web 浏览器,新结果应该附加到网页上已经存在的旧结果中。

如何在 ASP.NET MVC 2 中执行此操作?

我将不胜感激有用的答复。

更新

感谢您的所有回答,但我决定在 Web 浏览器中使用 JavaScript 来轮询服务器以获取数据,这是我的问题 Can't disable jQuery cache

0 投票
2 回答
476 浏览

blazeds - 对于低带宽网络,最好的 BlazeDS 轮询方法是什么?

我想知道 BlazeDS 轮询配置,简单或长轮询,是低带宽网络的最佳选择。

0 投票
1 回答
738 浏览

comet - DreamHost 上的彗星和长轮询请求?

是否有任何解决方案可以在 DreamHost 或其他我无权调整 apache 的共享托管环境上运行此类操作?