问题标签 [ajax-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 投票
1 回答
963 浏览

ajax-polling - 使用 Javascript 轮询,但时间间隔不同

我正在使用带有 Javascript 的轮询来使用 ajax 获取一些信息,但时间间隔完全相同。

因为我现在知道,信息是在不同的时间间隔内出现的,所以我想在不同的时间间隔内进行轮询。例如:

第一个请求:2 秒后 - > 非常重要,即 2 秒后!第二次请求:7 秒后第三次请求 15 秒后第四次请求 25 秒后

有好的可能性吗?

0 投票
1 回答
919 浏览

asp.net-mvc-3 - MasterPage 上的 jQuery Mobile 转换和 AJAX 轮询

我正在尝试使用带有 jQ​​uery 的 AJAX 轮询来更新 ASP.NET MVC3 中剃刀 MasterPage 上的 span 元素。该页面使用 jQuery Mobile 1.0 框架,该框架使用某种“过渡”动画来装饰简单的视图更改(例如从 /home 导航到 /about)。

这是执行轮询的 Javascript 代码,而“unreadBubble”跨度位于正文中 - 两者都在 MasterPage 中定义!

所以,想象一下我有一个 HomeController 和一个 NotificationController,它们都使用 MasterPage 并提供一个 Index 视图。AJAX 轮询适用于两个视图,并按预期每秒更新跨度。但是,一旦我从一个视图导航到另一个视图,跨度就会使用 MasterPage(空)中的默认值重新初始化,并且不再更新。有趣的是,仍然在 NotificationsController 上反复调用异步 GetUnreadNotificationsCount 方法 - 跨度只是不更新​​。我还尝试提醒 JS 中的 span 标签,它不是 null 什么的。

根据文档,jQuery Mobile 还使用 AJAX 加载新页面以插入这个花哨的“SWOOSH”过渡动画。这似乎以某种方式扰乱了 JS/DOM 初始化。

你知道如何解决这个问题吗?我应该绑定到另一个事件还是可以强制更新 span 标签?

解决方案:这是一个缓存问题!下面的诀窍:将class="command-no-cache"添加到您的页面 div 将以下 JavaScript 添加到 MasterPage:

});

0 投票
2 回答
2987 浏览

php - 如何在您的网站中使用长轮询或 Ajax 推送

我想知道如何使用 ajax push 。我从各种网络文章中了解到,可以通过使用 COMET、APE (AJAX PUSH ENGINE) 等少数程序来获得 Ajax 推送。但我想知道是否有更简单的使用方法以及使用什么语言实现ajax推送。因为在我看过的文章中。他们正在使用java。我没有学过:(所以我想知道是否有类似的东西:你的服务器中的一个javascript设置一个特定项目的间隔,然后如果发现任何更改然后使用php回显它。?请帮帮我为此。已经一个星期了,现在我试图实现这一目标。我尝试通过使用间隔来使用普通的 ajax 和 php,但无法获得结果。谢谢。PS:请通过示例向我展示一个简单的使用方法或者其他的东西。

0 投票
0 回答
405 浏览

jquery - jQuery重新发送AJAX请求?

我对 jQuery AJAX jQuery 请求有一个奇怪的问题。当我们在我们的网站上生成报告时,可能需要一段时间,所以我们有一个状态栏,我们会通过轮询来更新。但是,我看到的是这些请求似乎超时并重新发送 - 一种非常奇怪的行为。

这是工作流程: - 用户输入他们的电子邮件地址并单击“获取报告” - 按钮触发 AJAX 请求(见下文)。- 发出 AJAX 请求后,我们发送第二个更简单的请求,以轮询 checkStatus 函数。此函数将 JSON 字符串返回给更新屏幕上的状态栏的回调。- 在原始 AJAX 请求的“成功”属性中,我们设置了一个标志来停止轮询,因此当报告完成时,轮询停止(并且最后一次状态更新反映它已完成)。

除了一个小问题外,这非常有效。我发现当我们有大报告时,它似乎发送了第二个 getReport 请求,而用户实际上没有做任何事情。我可以这样说,因为我们的状态将达到 1000 行中的 700 行左右,然后跳回到 1000 行中的 15 行,然后跳回到 1000 行中的 710 行,然后 1000 行中的 25 行,这表明正在同时生成两个报告并更新状态标志具有不同的状态。

我所能想到的是,由于某种原因,原始的 getReport AJAX 请求正在重新发送。是否有一些超时或我不知道的东西?

这是代码:

0 投票
2 回答
27608 浏览

html - 服务器发送事件与轮询

HTML5 SSE和直接 Ajax 轮询之间是否存在很大差异(在性能、浏览器实现可用性、服务器负载等方面) ?从服务器端来看,似乎EventSource每隔 3 秒左右就会访问指定的页面(尽管我知道时间是灵活的)。

诚然,在客户端进行设置比设置一个计时器并$.get每隔一段时间设置一次要简单,但是还有什么其他的吗?它会发送更少的标题,还是会做一些我错过的其他魔法?

0 投票
3 回答
11110 浏览

ajax - jQuery递归ajax轮询使用setTimeout控制轮询间隔

这只是尽可能快地执行服务器可以响应,但我希望它只会每 5 秒轮询一次。有什么建议么?

编辑:我应该补充一点,在请求完成后 5 秒会更好。

0 投票
1 回答
6659 浏览

ajax - AJAX/反向 AJAX:轮询还是推送?

一直在研究 AJAX,因为我正在用 Javascript 和 PHP 制作一个实时应用程序。它需要能够在不刷新页面的情况下实时更新。

我尝试使用 setInterval() 轮询服务器,但为了快速,我必须每秒都拥有它。不过,它似乎正在使用大量带宽。但是它确实有效,我与我的托管服务提供商制定了“无限带宽”计划。不过,网站上似乎有很大的压力,所以我想使用 Push 技术。

学习如何设置 Push 非常困难。据我所知,您必须托管某种类型的推送服务器或彗星服务器。我还研究了 websockets,但你也必须自己托管它。当我没有服务器计算机并且我的托管服务提供商网站上没有关于此的文档时,我不明白该怎么做。

特定的托管服务提供商会为您托管推送服务器吗?有没有办法在不托管服务器的情况下获得服务器?与轮询相比,这似乎是一个更好的选择,但同时它似乎非常令人困惑。

0 投票
2 回答
142 浏览

javascript - 插入 Ajax 轮询

我想知道是否可以将 Ajax 轮询插入到我下面的当前代码中,以便用户发布每隔几秒更新一次以显示添加到数据库中的任何新内容,例如他们的状态和添加的新评论的数量和我建立的提要中的时间戳。这是我到目前为止所拥有的。

0 投票
2 回答
519 浏览

javascript - Ajax 轮询仅更新数据

我需要我的用户流每 10 秒更新一次,以更新其他用户新插入的状态、时间戳和最新添加的评论数量等内容。

现在我可以使用以下内容,但我面临的问题是,当我发布到 textarea 时,插入用户发布的状态需要 10 秒,然后每隔 10 秒添加一次相同的状态..就在一个不同的身份证。

我需要轮询做的只是选择我在 insert.php 页面中回显的数据,而不是实际上每 10 秒添加一条新评论。是否可以采用不同的方式来选择响应数据?

HTML/PHP 页面

创建流功能

0 投票
2 回答
193 浏览

javascript - 如何在 ajax 投票中发送最后一类 div?

我的 ajaxPoll 聊天系统有问题。我正在尝试将聊天消息的最后一个 ID 发送divphp,因此查询只能显示高于发送的最后一个 id 的结果。

所有聊天消息都在一个div被调用的chat_log. div一条消息周围会有一个带有消息id 的类。它将具有文本message,然后是该消息的 ID,例如:class="message543". 好的,为了更容易理解,这里有一个 HTML 示例,其结构和顺序正确。

如您所见,div max 中有 7 条消息。任何高于此的消息都将被清除(如果一切正常,只需一点额外信息。)另外需要注意的是,我使用了jquery库和一个 jquery 插件在这里找到,归功于这篇博文。(可以在此处找到有关插件功能的信息。)


我试过的:


代码去掉字符串'message',然后获取数字。编码:

...粘贴到控制台时可以正常工作并输出正确的 last div's message id

但是,当非手动运行时(可能是因为它不在函数或循环中或其他什么情况下)它不会,由于某种原因,代码仅0在有其他带有+id的消息时发送“” 1000。我还尝试了很多其他的东西,比如setInterval's,等等。我认为可能导致问题的一件事是变量范围,就好像当function调用成功的民意调查时,它不会调整lastId变量。我不完全确定是否是这种情况。如果是这种情况,我将不胜感激有关如何修复变量范围以使代码正常工作的支持。

附带说明一下,php 运行成功,所以我不需要帮助。

重要编辑(使问题更容易理解):代码

...工作正常,它的周边区域(结构)似乎是问题所在。也where与此无关,where只是告诉 php 脚本是从哪里发送的。我知道在 first called 上附加了一个 div test,即将第一个定义lastId0. Loop应该处理获取最新的,lastId但它没有。

我发现lastId没有在 ajaxPoll 中编辑,它从 div 获取正确的 lastId,但没有编辑lastId。这几乎可以确定这是一个范围问题