问题标签 [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 投票
2 回答
1342 浏览

javascript - 返回 JSON 的 URL 的 AJAX 轮询似乎没有返回新的响应(使用 jQuery $.ajax() 方法)

我的项目需要使用 AJAX 轮询某个 URL 以获得 JSON 响应。我发出的第一个 AJAX 请求提醒服务器我需要一些 JSON 内容,它开始构建和缓存响应,为每个后续 AJAX 请求发送回{"status":"pending"}直到 JSON 准备好。此时,响应更改为 JSON,其中包含我可以在文档中解析和显示的内容,只要 URL 返回{ "status" : "pending" }以外的任何内容,我就想这样做。

我设置了一个轮询函数,可以按预期重复从 URL 请求 JSON。但是,问题是即使我直接导航到 URL 并且可以看到完整的 JSON 响应已准备好并正在提供服务,它仍会继续获得响应{“status”:“pending”} 。出于某种原因,我的轮询函数仍然得到{ "status" : "pending" }

当我刷新包含轮询代码的页面时,它通常适用于第一个请求 - 即它获得完整的 JSON 响应。这让我相信这是某种缓存问题,但我不确定在哪里或为什么。每个 AJAX 请求不应该得到一个新的响应,或者这是我可以在我的$.ajax()调用中设置的东西吗?

这是我现在使用的代码:

success()是在页面上显示 JSON 内容(即我在轮询时等待变为可用的内容)的函数。

值得注意的一点是,在本地测试代码时,轮询本地 .json 测试文件,我可以将文件的内容从{ "status" : "pending" }更改为包含我正在寻找的内容的响应,保存轮询实例之间的文件,并且在下一次轮询时,我的代码会看到新内容并按预期工作。它只是在暂存环境中不起作用。

0 投票
3 回答
1223 浏览

ajax - 并发 AJAX 间隔轮询

除了服务器上明显的重负载之外,同时进行多个并发 AJAX 轮询是否很糟糕?或者浏览器/服务器可以处理的内容是否存在限制?

示例(所有 AJAX 轮询)..

  • 功能 A 以 3 秒的间隔为全球聊天系统(如 Facebook/MySpace)拉取新消息。

  • 函数 B 以 2 秒为间隔,用于拉取更新以及向用户显示哪些操作(例如在在线扑克应用程序中)。

  • 功能 C 在 4 秒内运行,但也为单独的消息传递系统拉取新消息。

0 投票
1 回答
569 浏览

callback - 如何为回调轮询配置 dojox.cometd?

到目前为止,我找到了一些关于如何配置 dojox.cometd 的示例,但没有一个示例配置了 connectionType。我目前对回调轮询而不是长轮询(据我所知,这是默认的)更感兴趣。

有人可以在这里帮助我吗?我必须承认 dojox 文档对我来说非常晦涩难懂,甚至源代码也有点混淆(至少对我来说,我不是 javascript-ninja 编码器)

0 投票
5 回答
4893 浏览

asp.net - 使用数据库作为消息队列的 Asp.net 聊天应用程序

我开发了一个聊天 Web 应用程序,它使用 SqlServer 数据库来交换消息。

所有客户端每 x 秒轮询一次以检查新消息。

很明显,这种方法会消耗很多资源,我想知道是否有一种“更便宜”的方式来做到这一点。

我对“存在”使用相同的方法:检查谁在场。

0 投票
5 回答
516 浏览

linux - 在 Linux 中,以认真的方式进行轮询

当你有一个紧密的循环轮询某事物的状态时,我不太确定如何进行轮询而不妨碍其他想要使用 CPU 的进程。例如,这样做:

好像很浪费资源。我认为最好的方法是:

我希望 top 会将进程列为睡眠状态,即使它在执行此操作时确实消耗了 100% 的 CPU。这样,该过程将(我希望)“很好地”轮询。但事实并非如此。目前我有

这是完全可以接受的,但我觉得它可以做得比这更好。有这样做的标准做法吗?

0 投票
5 回答
722 浏览

c# - (Win/C#/.Net) Applet 需要每隔一小时轮询一次——关于最佳方法的建议?

Applet 需要轮询一个目录是否存在,例如,每 1-4 小时一次,如果找不到,则发送几封电子邮件/NET SEND。尚不确定确切的时间间隔,但绝对不会短于 1 小时。在可预见的未来,整个“工作”将是永久性的并持续运行。Applet 将在 Win2k3 服务器上运行,并且基于(极轻的)用户使用模式,我怀疑它会以任何明显的方式干扰主要服务器功能,但只是希望它表现良好,当然!最终考虑将其实现为 Win Service,但由于各种原因,第一个实现将作为控制台应用程序。

寻求在系统资源使用方面最精简的实现,特别是 CPU 和 RAM。 最关注时间/轮询实现与 CPU 使用情况。 不会创建大量对象、GUI 等,因此 RAM 使用应该不是什么大问题,但是如果我将垃圾收集实现为长时间运行的 .exe,我是否需要特别考虑它(在几个月/几年的意义上)?

文件系统观察者?
系统.定时器.定时器?
线程.睡眠?
其他?

实际上,在我写这篇文章的时候,最简单的实现——从重用已经为这类任务发明的许多现有“轮子”的角度来看——将根本不进行轮询,而只是将其设计为启动,执行操作,然后关闭,并让 Windows 计划任务基础结构处理时间方面。但是我还是发布了该想法的验证+一般信息以供将来参考。泰!

0 投票
2 回答
1311 浏览

boost - 在幼稚的轮询实现中提升中断

我开发了一个简单的轮询线程(使用Boost 1.39.0),它检查数据资源是否在给定时间范围内被访问,如果没有则清除连接。相关代码可以在下面查看。

我的担忧有两个:

1)在睡眠中使用中断是否适合安全地关闭线程?中断会等待睡眠完成还是会立即中断?您可以看到我捕获了一个 thread_interrupted 异常,只是为了逃避 while 循环。

2)使用大部分时间都在睡觉的线程是浪费吗?在标准 C++ 中实现简单的轮询机制是否有更好的模式?

0 投票
2 回答
335 浏览

winapi - 使用 Win32 查看文件夹

我正在寻找一种使用 Win32(最低目标是 XP)来查看文件夹内容的简单方法。如果可能的话,最好使用事件驱动的方法而不是轮询类型的方法。更复杂的是,被监视的文件夹可能是网络共享。

我真的只对捕获“新文件”感兴趣。我不在乎我是否没有被告知重命名或删除的文件。

是否有事件驱动的方式,或者在处理 Win32 时轮询我唯一的选择?

0 投票
7 回答
22238 浏览

api - 从 Twitter 获取历史数据

对于一个研究项目,我想获得最近 3 个月的 Twitter 消息。抛开技术挑战不谈,这可能吗?通过使用某种缓慢的轮询机制来阻止速率限制器?

Twitter API 声明“客户可以通过页面请求多达 3,200 个状态,并为时间线 REST API 计数参数”这些是每小时吗?每天?或者……曾经?

有什么建议么?它甚至在理论上是可能的吗?以前有人做过类似的事情吗?

谢谢!马可

0 投票
2 回答
3189 浏览

git - Hudson无限循环轮询Git存储库中的更改?

用于 hudson 的 git 插件运行良好。但是,构建脚本必须更新存储库中文件中的版本号,提交并推送回存储库。

当 Hudson 轮询 next 以检查更改时,它会进入无限循环,因为它将提交视为“更改”再次构建,它提交更改,因此再次构建,然后提交另一个更改,等等......你得到这个想法。

我停止了它,在每个存储库中运行了一个“git log”,并使用 git ls-tree HEAD 比较了最新的提交 ID 完全相同

此外,Hudson 运行此命令来检查更改:

git fetch +refs/heads/ :refs/remotes/origin/ git ls-tree HEAD

由于 Hudson 本身从其工作区存储库中推送了提交,并且显然 ls-tree 结果匹配,该命令如何确定存在更改?

似乎它必须在构建之前存储 ls-tree 的结果,并与没有最新提交的结果进行比较。啊。我可以尝试关闭提交以测试该理论。

无论如何,与其修复 Hudson 的 git 插件中的任何问题,我可以做些什么来确保在我的构建结束时 repos 是相同的并且 Hudson 会看到它。

如何解决这个问题?有任何想法吗?

韦恩