问题标签 [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 回答
1206 浏览

python - 最简单的python长轮询

我在 python 中看到了一些关于长轮询的线程,但我的问题并不是使用一些额外的工具包,比如龙卷风等。我有 js 客户端。它将请求发送到我的 /longpolling 页面并等待响应。一旦它得到响应或超时,它就会发送新的。这运作良好。我的 /longpolling 处理程序是一个函数:

在 10 分钟内每 2 秒我想检查数据库中的新日志实例以通知 js 客户端。我尝试通过 phpMyAdmin 手动插入日志记录,但下一个 Log.objects.filter(time__range = (lastUpdate, now)) 返回空 QuerySet。我从 .query attr 复制原始查询,它看起来像:

SELECT ... FROM ... 2013-01-05 03:30:36 和 2013-01-05 03:45:18 之间的时间

所以我引用了 2013-01-05 03:30:36 和 2013-01-05 03:45:18 并通过 phpMyAdmin 执行了这个 SQL,它返回了我添加的记录。我试过了:

查询 = Log.objects.filter(time__range = (lastUpdate, now))

query = Log.objects.raw("SELECT * FROM ...log WHERE time BETWEEN %s and %s", [lastUpdate, now])

用于登录 query.iterate():

但它总是返回一个空的 QuerySet 但从来没有我添加的记录。我以为有一些缓存,但是在哪里?或者问题是我插入新记录直到while True:循环正在执行?或者也许有一些线程保护?为什么 phpMyAdmin 看到记录但 django 没有?请帮帮我,我卡住了。

0 投票
1 回答
1049 浏览

.net - 轮询数据库更改:OracleDependency、SignalR,还是太多了?

我想我正在寻找最佳实践,但我已经阅读了有关执行此操作的各种方法的相互矛盾的信息。我正在尝试整理一个网页示例,其中包含一个信息网格,该信息网格准确地显示了数据库中的内容。该表可以通过表单从网页更新,但也可以从各种其他来源更新。

如何提醒用户注意更新?这是我到目前为止所经历的:

  1. SignalR 可用于让用户“订阅”网格上的更新。这适用于从表单到数据库的插入/更新以提醒用户。但是来自其他非 .NET 来源的实际数据呢?

  2. OracleDependency:当数据库更新时,回调命中 .NET。我读过这不适合在不断更新的表上使用。这是为什么?这是连接 SignalR 并提醒组中用户的可行选项吗?

  3. 基本民意调查:我是不是想多了?我是否应该简单地轮询每个客户端上的数据库、获取更改并通过 AJAX 插入表中?

0 投票
1 回答
203 浏览

javascript - javascript 似乎没有从 rails 源获取数据

我正在使用 dataTables 来显示一个漂亮的表格来显示各种信息。javascript 成功地将轮询请求发送到数据库/网络服务器,但是 javascript 似乎没有获取任何当前数据。

这是我的控制器

看法:

评论.js:

我看到在数据库端推送了正确的查询:

但是,在 Firefox 的 Web 控制台上,我看到它在轮询时没有检索到任何数据......并且当 dataTable 卡在“加载数据”时

谢谢你的帮助

0 投票
1 回答
768 浏览

asp.net-mvc - Ajax 轮询使浏览器崩溃,因为它的内存使用,cpu 使用不断增加?任何替代品

我是 ajax 轮询的新手,我实现了连续获取数据,但我遇到的问题是内存使用率和 CPU 使用率不断增加,最后浏览器崩溃。这是我用来连续获取数据的 ajax 调用。

有没有其他选择,或者我做错了什么。请提供一些建议或解决方案。提前致谢 。

0 投票
1 回答
198 浏览

websocket - 如何实现低频低消息率浏览器推送

我们想进入推送技术,我们的用例如下:

  • 大量的同时客户端(数 100.000)
  • 消息率低(每分钟约 1 条)
  • 小数据(<500 字节/消息)
  • 延迟低于 2 秒

现在我们有两个相互竞争的解决方案:

  1. 我们可以建立一个真正的 websocket/longpolling 服务器集群(我们将在 node 或 vert.x 上评估气氛、playframework 和 socket.io);这将导致几个 100.000 个套接字同时处于活动状态,几乎所有套接字都处于空闲状态(除了 25% 的 IE 不断重新建立长轮询连接);

  2. 我们可以只使用缓存网络服务器(无效)后面的静态 json 文件作为经典轮询的端点;这将导致来自浏览器的每秒 100.000 个请求,几乎所有请求都以 304 的结果代码回答。

您会提出哪种解决方案?特别是在资源消耗方面:cpu、内存、流量、io?

0 投票
1 回答
208 浏览

jquery - 非确定性解析器错误

通过对 play2.1-server 执行一些短轮询 ajax()-request,我遇到了一些奇怪的错误。

目前我正在使用 REST 向服务器发送请求,并等待 json 作为答案。服务器总是响应正确的 JsonP,但在很短的时间后,客户端会收到“parsererror”并停止为所有后续请求调用 ajax-callbackmethod。

客户端:

服务器:

根据 Fiddler Web Debugger,服务器始终发送相同(且正确)的 jsonp 字符串。来自客户端的 restGet-Method 每秒被调用一次。

客户端崩溃后会立即打印出以下内容:

我不知道我的代码有什么问题,我发现的其他关于 parsererror 的帖子总是说你必须使用 jsonp 而不是 json。我就是这么做的,不是吗?

0 投票
1 回答
312 浏览

ajax - Jquery Ajax Polling 在每次调用时都会跳到顶部

我正在使用以下函数来显示当前活动的游戏列表。现在的问题是,如果玩家正在浏览列表,并且如果执行了 ajax 调用,那么它会跳转到 div 的顶部,我将其替换为 ajax 调用的响应。

如何避免跳到 div 的顶部?或任何其他应实施以显示最新游戏列表而不跳入ajax调用的解决方案?

带有一些数据和按钮的单行响应以加入游戏。

多行响应将有多个 <

0 投票
1 回答
1370 浏览

java - Primefaces,空闲时定期更新

我想在用户空闲时自动更新数据表(在客户端)。我将 Primefaces 3.5 与 glassfish 一起使用,我的想法如下:

boolean autoUpdate在 bean 中有变量。用户可以打开/关闭自动更新。

我创建了两个组件:p:pollp:idleMonitor.

idleMonitor两个事件,触发更新

这部分没问题。问题是,如何禁用idleMonitorwhenautoUpdate设置为False?当我做

它只有在我开始时才有效,autoUpdate = false而且我只能切换一次模式。渲染后无法更改。我也试过

但它也没有工作。#{cc.attrs.bean.autoUpdate}永远不会改变。即使我在上面调用 upadte,我也可以看到变量在另一个地方发生了变化。

所以,我的问题是:有什么方法可以在渲染后禁用 idleMonitor?或者对于空闲用户的可选定期更新,更好的解决方案是什么?

0 投票
0 回答
100 浏览

javascript - 为 api 页面更改创建一个简单的民意调查

我有一个 java servlet,它以文本/纯格式的数字响应。我想要做的是让另一个页面运行一个脚本,该脚本轮询这个 URL 并在第一次加载的数字发生变化时触发一个警报窗口。我几乎没有使用 javascript 的经验,到目前为止,我无法遵循我发现的任何长轮询教程。

基本上,我需要在页面加载时启动轮询,记住检索到的第一个值是什么,然后在值更改后触发警报窗口。

这是我到目前为止所拥有的,但是我相信我需要以某种方式解析数据。该 URL 返回一个带有数字的文本/纯页面。而已。

0 投票
1 回答
2745 浏览

javascript - 角点符号更好的解释

我正在寻找一个关于使用 AngularJS 轮询数据的解决方案,我在 stackoverflow 上找到了。

在这个解决方案(如下所示)中,它使用了一个 javascript 对象来返回响应(data.response),如果我尝试将该data对象替换为一个简单的 javascript 数组不起作用,我想确切地知道为什么我需要使用点表示法以及为什么单个数组不起作用?(这将是很好的链接或示例解释)

试图总结我的目标(我想真正理解的):var data = { response: {}, calls: 0 };可以在哪里var data = {};,然后response.data将直接设置为数据data = r.datareturn {data: data};,为什么我需要依赖点符号?