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

php - 如何使用 Jquery/PHP 实现聊天室?

我正在寻找使用具有群聊和私人聊天功能的 PHP/Javascript (Jquery) 来实现聊天室。

问题是如何以自然的方式不断更新界面,以及如何在私人聊天中显示“X 正在输入..”消息。

显而易见的方法似乎是每 X 秒/毫秒 javascript ping 服务器并获取上次 ping 和现在之间的新消息列表。但是,如果聊天室突然充斥着 5 条消息,这会使界面看起来有点不自然。我宁愿每条消息都在输入时显示。

javascript有没有办法保持与服务器的持续连接,服务器将任何新消息推送到此连接,然后javascript将它们添加到界面中,以便它们同时出现,几乎在服务器接收到它们的同时出现?

我知道有一些轮询选项需要您安装一些 apache 模块等,但我对系统管理员很不满意,因此我希望在共享主机帐户或 php 上有一个非常容易安装的解决方案/mysql 唯一的解决方案。

0 投票
2 回答
705 浏览

extjs - 轮询的 ExtJS 面板/树/其他东西

我想要的只是显示数据库表中始终是最新的记录列表。

我最初的想法是每隔 x 秒进行一次持续的 ajax 调用来检查更新,但不确定这是否是处理它的最佳方法。我用谷歌搜索了一下,诸如 COMET、Ext.Direct、轮询、推送(彗星?)之类的东西都出现了。

最好的方法是什么?

0 投票
1 回答
3417 浏览

jquery - Chrome 中的长 Ajax 请求显示等待

在 FF 和 IE 中,我向我的服务器发出 Ajax 请求(Jquery Post)。请求调用一个 sql 存储过程,该过程在返回数据之前查询 30 秒(如果数据可用,则立即查询)。然后将数据返回到我的 javascript 并根据它执行操作。

一切都很好,直到我访问 Chrome,它会获取更新,但会在浏览器中显示加载指针和加载页面图标。

每次返回请求时都会进行此调用,因此对用户而言,似乎 chrome 总是在等待页面加载。

有没有办法解决?

问候。

0 投票
2 回答
3865 浏览

jquery - jquery 使用智能投票插件进行投票

我一生都在努力让这个插件工作,但我不理解状态功能,所以重试不会触发。

如果我将获取请求设置为“/”,它将给我警报 YES 消息,但实际上,尽管有 ELSE,但警报 No 消息永远不会被触发。

我正在使用一个 jquery 轮询插件:

https://github.com/jeremyw/jquery-smart-poll

有任何想法吗?

0 投票
3 回答
401 浏览

ajax - AJAX 轮询问题 - 阻塞还是频繁?

我有一个依赖于非常“实时”数据的 Web 应用程序 - 所以如果发生变化,它需要每 1 秒更新一次。

我想知道以下解决方案的优缺点是什么。

解决方案 1 - 大量投票

所以每隔 1 秒,我就会向服务器发送一个请求并取回一些数据。获得数据后,我会等待 1 秒钟,然后再进行所有操作。如果状态发生变化,我会检测客户端并采取适当的措施。

解决方案 2 - 大量阻止

所以我开始向服务器发出一个请求,该请求将在 30 秒后超时。服务器通过每秒检查一次来密切关注服务器上的数据。如果服务器注意到数据发生了变化,它会将数据发送回客户端,客户端会采取适当的措施。

设想

本质上,数据的大小相当小,但会根据实时事件以随机间隔发生变化。问题是,Web UI 将在 2,000 个实例的区域内运行某些东西,那么我是每秒有 2,000 个来自 UI 的请求,还是有 2,000 个需要长达 30 秒的长时间运行的请求?

非常感谢您的帮助和建议,特别是如果您处理过类似数量的 AJAX 请求。

0 投票
5 回答
903 浏览

php - AJAX/PHP 为什么 HTTP 轮询如此滞后?

为什么 HTTP 轮询如此滞后?

我拥有的是一个按钮,每当用户单击它时,MySQL 数据库字段就会更新,并将值显示给用户。我每 800 毫秒轮询一次,它非常滞后/故障。有时单击按钮时不会注册它。而且我实际上需要比每 800 毫秒更频繁地进行轮询。

这也是网站上一次只有 1 个用户......最终会同时有很多用户。

0 投票
1 回答
118 浏览

api - 用于商业用途的 API 中的 AJAX 轮询

目前我正在开发一个使用 AJAX 间隔轮询的 API,它每 1.5 分钟轮询 900 字节,似乎不会给 MySQL 带来沉重的负载,并且只是一个 AJAX 流。一旦我从这次启动中获得足够的收入,我计划升级到 node.js 服务器,但到目前为止,我只能购买使用 apache 的共享主机。

就可扩展性而言,这是否可行?此外,这是否可以从商业标准中接受,因为现在可以使用像彗星这样的其他解决方案?

0 投票
1 回答
305 浏览

java - 如何使用 CometD 向频道的所有 Javascript 订阅者发布消息?

给定一个使用 CometD 的 Java Web 应用程序,我如何在bayeux 每次处理消息时向所有频道的订阅者发布消息?

为了测试,我使用了serverSession.deliver(serverSession, "/test-channel", map, null);.

结果是我的 Javascript 客户端将成功订阅,但仅收到 10 次尝试中的 1 次消息。因此,在 90% 的情况下,浏览器从未收到任何消息,但 Bayeux 日志记录(级别 3)显示它们每次都被发送到正确的通道。

我应该使用某种形式的客户端会话吗?CometD 文档似乎有点不清楚。

0 投票
2 回答
337 浏览

c# - 每当在数据库中插入新行时,我都想在 c# 中执行代码

我正在开发一个聊天应用程序,其中一个客户端的聊天消息进入数据库,其他客户端每 5 秒(使用计时器)轮询是否有任何新消息,如果是,则获取并显示消息。但是,当一个用户的连接速度较慢而另一个用户的连接速度非常快时,就会产生问题。我想开发一种机制,仅当在数据库中插入新行时才执行方法,这样就不再需要轮询。只有当任何客户端有新的聊天消息进入数据库时​​,用户才会获取消息,否则都保持空闲状态。任何帮助将不胜感激。我正在使用 asp.net 和 C#。

0 投票
1 回答
1389 浏览

asp.net - 如何在客户端轮询状态

我需要找出可以随时更改的对象的状态。最好的情况是,如果对象发生更改,客户端会得到更新,但是我认为在没有客户端先要求的情况下,没有办法将更新推送到客户端。

所以,我正在考虑通过 jQuery ajax 调用实现轮询,该调用每 5 秒左右设置一次调用服务器。这是一个合理的解决方案吗?