问题标签 [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 - 返回 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" }更改为包含我正在寻找的内容的响应,保存轮询实例之间的文件,并且在下一次轮询时,我的代码会看到新内容并按预期工作。它只是在暂存环境中不起作用。
ajax - 并发 AJAX 间隔轮询
除了服务器上明显的重负载之外,同时进行多个并发 AJAX 轮询是否很糟糕?或者浏览器/服务器可以处理的内容是否存在限制?
示例(所有 AJAX 轮询)..
功能 A 以 3 秒的间隔为全球聊天系统(如 Facebook/MySpace)拉取新消息。
函数 B 以 2 秒为间隔,用于拉取更新以及向用户显示哪些操作(例如在在线扑克应用程序中)。
功能 C 在 4 秒内运行,但也为单独的消息传递系统拉取新消息。
callback - 如何为回调轮询配置 dojox.cometd?
到目前为止,我找到了一些关于如何配置 dojox.cometd 的示例,但没有一个示例配置了 connectionType。我目前对回调轮询而不是长轮询(据我所知,这是默认的)更感兴趣。
有人可以在这里帮助我吗?我必须承认 dojox 文档对我来说非常晦涩难懂,甚至源代码也有点混淆(至少对我来说,我不是 javascript-ninja 编码器)
asp.net - 使用数据库作为消息队列的 Asp.net 聊天应用程序
我开发了一个聊天 Web 应用程序,它使用 SqlServer 数据库来交换消息。
所有客户端每 x 秒轮询一次以检查新消息。
很明显,这种方法会消耗很多资源,我想知道是否有一种“更便宜”的方式来做到这一点。
我对“存在”使用相同的方法:检查谁在场。
linux - 在 Linux 中,以认真的方式进行轮询
当你有一个紧密的循环轮询某事物的状态时,我不太确定如何进行轮询而不妨碍其他想要使用 CPU 的进程。例如,这样做:
好像很浪费资源。我认为最好的方法是:
我希望 top 会将进程列为睡眠状态,即使它在执行此操作时确实消耗了 100% 的 CPU。这样,该过程将(我希望)“很好地”轮询。但事实并非如此。目前我有
这是完全可以接受的,但我觉得它可以做得比这更好。有这样做的标准做法吗?
c# - (Win/C#/.Net) Applet 需要每隔一小时轮询一次——关于最佳方法的建议?
Applet 需要轮询一个目录是否存在,例如,每 1-4 小时一次,如果找不到,则发送几封电子邮件/NET SEND。尚不确定确切的时间间隔,但绝对不会短于 1 小时。在可预见的未来,整个“工作”将是永久性的并持续运行。Applet 将在 Win2k3 服务器上运行,并且基于(极轻的)用户使用模式,我怀疑它会以任何明显的方式干扰主要服务器功能,但只是希望它表现良好,当然!最终考虑将其实现为 Win Service,但由于各种原因,第一个实现将作为控制台应用程序。
寻求在系统资源使用方面最精简的实现,特别是 CPU 和 RAM。 最关注时间/轮询实现与 CPU 使用情况。 不会创建大量对象、GUI 等,因此 RAM 使用应该不是什么大问题,但是如果我将垃圾收集实现为长时间运行的 .exe,我是否需要特别考虑它(在几个月/几年的意义上)?
文件系统观察者?
系统.定时器.定时器?
线程.睡眠?
其他?
实际上,在我写这篇文章的时候,最简单的实现——从重用已经为这类任务发明的许多现有“轮子”的角度来看——将根本不进行轮询,而只是将其设计为启动,执行操作,然后关闭,并让 Windows 计划任务基础结构处理时间方面。但是我还是发布了该想法的验证+一般信息以供将来参考。泰!
boost - 在幼稚的轮询实现中提升中断
我开发了一个简单的轮询线程(使用Boost 1.39.0),它检查数据资源是否在给定时间范围内被访问,如果没有则清除连接。相关代码可以在下面查看。
我的担忧有两个:
1)在睡眠中使用中断是否适合安全地关闭线程?中断会等待睡眠完成还是会立即中断?您可以看到我捕获了一个 thread_interrupted 异常,只是为了逃避 while 循环。
2)使用大部分时间都在睡觉的线程是浪费吗?在标准 C++ 中实现简单的轮询机制是否有更好的模式?
winapi - 使用 Win32 查看文件夹
我正在寻找一种使用 Win32(最低目标是 XP)来查看文件夹内容的简单方法。如果可能的话,最好使用事件驱动的方法而不是轮询类型的方法。更复杂的是,被监视的文件夹可能是网络共享。
我真的只对捕获“新文件”感兴趣。我不在乎我是否没有被告知重命名或删除的文件。
是否有事件驱动的方式,或者在处理 Win32 时轮询我唯一的选择?
api - 从 Twitter 获取历史数据
对于一个研究项目,我想获得最近 3 个月的 Twitter 消息。抛开技术挑战不谈,这可能吗?通过使用某种缓慢的轮询机制来阻止速率限制器?
Twitter API 声明“客户可以通过页面请求多达 3,200 个状态,并为时间线 REST API 计数参数”这些是每小时吗?每天?或者……曾经?
有什么建议么?它甚至在理论上是可能的吗?以前有人做过类似的事情吗?
谢谢!马可
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 会看到它。
如何解决这个问题?有任何想法吗?
韦恩