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

javascript - 如何使用 Rails 4 轮询数据库中的一个值,如果值更改,则使用 AJAX 刷新

我已经使用 Rails 工作了几年,但这是我第一次尝试 AJAX 和 Javascript。我花了很多时间阅读各种网站,试图弄清楚什么去哪里以及它应该做什么。

我试图让 Rails 4 应用程序中的 edit.html.erb 中的 'refreshme' div 每次“故事”表中的“转”字段发生变化时刷新。所以我在story.js 中写了一个setInterval() 函数来检查@story.turn 和刷新。我可以让它每 10 秒刷新一次,但我只希望代码每 10 秒检查一次 story.turn 的值,并且只有在值发生变化时才刷新。

routes.rb (对吗?)

refresh.html.erb(在视图/故事中 - 我不知道这里属于什么)

edit.html.erb (views/stories) - show.html.erb 很好地刷新到这个 div

故事.js

故事控制器.rb

在 story.js 中,GET 函数执行,但 POST 函数不执行。我不确定我应该“发布”什么(我以为我正在从数据库中“获取”一个值,但我想不是)。

我认为 POST 是我需要从 stories 表中获取 @story.turn 的 AJAX 函数,但不知道如何让它做任何事情。我还需要 GET 来刷新吗?我已经把这段代码混了好几个星期了,这似乎是我现在应该弄清楚的事情。任何帮助将不胜感激。

0 投票
2 回答
741 浏览

c# - 如何使用 Jquery/Javascript 轮询 WebMethod

谁能告诉我如何使用 Javascript/JQuery 在特定时间间隔内轮询 webMethod ?我尝试了 setInterval 和 setTimeOut 但没有一个对我有用。我的应用程序根据用户的请求生成报告。因为报告生成需要 10-15 分钟,所以我不想阻止 UI 线程,所以我在 javascript 的按钮点击时创建了一个 reportID,并使用 _dopostback 调用按钮点击事件并将报告 ID 传递给它。C# 按钮单击事件使用 Delegate/BeginInvoke 调用 generate_report() 函数,现在我想轮询我创建的 WebMethod 以获取报告......这是一个代码片段......

因此,在按钮上单击如何在每 30 秒后开始轮询此 Web 方法,直到报告“就绪”并在就绪后清除间隔。??

0 投票
1 回答
469 浏览

javascript - 使用 setTimeout 的 jQuery 递归 ajax 轮询

这个问题与此有关:jQuery recursive ajax poll using setTimeout to control the poll interval,但略有不同,我不知道为什么。

像另一个问题一样,请求也被疯狂地发送出去。非常感谢您的帮助!

请注意,我必须为其他目的使用不同的名称“poll”和“_poll”。

0 投票
0 回答
63 浏览

javascript - 我能否可靠地检测用户是否可以看到网页?

我正在尝试决定是否做一个有点昂贵的 javascript-ajaxing-to-the-server 操作,但只有当用户可以看到网页时才值得这样做,所以我试图检测到这一点。

最初我很高兴找到“visibilitychange”API,但它看起来只检测网页是否在隐藏选项卡中。如果用户打开一个新的浏览器窗口而不是一个新的选项卡,则不会调用该事件。当用户更改为不同的应用程序时也不会调用它。

我也想如果浏览器不在前台我想放慢操作,所以实际上有三种状态:

  • "request-every-5-seconds" 浏览器是否有输入焦点?
  • "request-every-minute" 页面的任何部分实际上在用户的显示器上吗?
  • “不请求”浏览器隐藏在另一个窗口下。

这样,访问我的网页并打开浏览器的用户将不会使用服务器或他们计算机上的资源。

对于第一个状态监控,“onfocus”主要是有效的,但焦点可能会丢失给开发人员工具。这有点烦人,但这不是典型的客户,所以我可以忍受。

对于第二种状态,我不知道从哪里开始。我的一个想法是检测浏览器是否真的在“绘画”,但我还没有找到任何检测方法。

您如何决定是否值得检查更新?

[注意:我已经在使用 jQuery,所以基于 jQuery 的答案很好。]

谢谢。

0 投票
1 回答
401 浏览

validation - Primefaces 轮询触发来自 f:viewParam 的消息

第一次在这里发帖,所以对我来说有点裸露。搜索了很多,但无论是因为我是盲人还是因为我没有使用正确的搜索字符串,我都没有找到任何与我的问题相关的答案。

基本上,我有一个用 Java 编写并使用 Primefaces 的 Web 应用程序。我正在使用 ap:layout,主要内容在中心单元,页眉在北部,页脚在布局的南部单元。west 布局单元持有 ap:poll ,它每两秒运行一次,并且在触发 oncomplete 事件时调用一个 js 函数。

到目前为止,一切都很好。问题是,在某个页面上,在中心布局单元中,我有 af:viewParam,它只接受 long,即使该值是有效的,当执行上述轮询时,f:viewParam 中的 requiredMessage 也会出现。

在进行了一些深入的搜索后,我发现通过向 p:poll 添加 ignoreAutoUpdate="true" ,来自 f:viewParam 的消息不会被触发,并且告诉我必须提供有效 id 的警告不是' t 所示。

所以,我的问题是:通过在我的 p:poll 中使用 ignoreAutoUpdate="true" 是否会危及 f:viewParam 验证?或者把它放在那里安全吗?

这是我的布局中的相关部分:

民意调查形成西部布局单元:

包含我的 f:viewParam 的 f:metadata 块:

谢谢!

0 投票
1 回答
14570 浏览

ajax - 如何从 javascript 正确启动/停止 PrimeFaces Ajax Poll

我想要一个小 webapp 来测试与服务器的连接并返回状态消息。单击开始按钮后,我想每 4 秒轮询一次并返回状态文本。但它只会返回,如果我点击按钮,不会自动返回。这是我的代码:

索引.xhtml:

还有我的豆子:

有谁能够帮我?因为我是 PF 和 Ajax 的新手。谢谢!

0 投票
0 回答
135 浏览

php - 当用户在 WEB 应用程序上收到新消息时通知用户

最近我开始研究 Web 应用程序。对不起,如果这是个愚蠢的问题。

我之前有一个Android应用程序。我正在使用 GCM 进行推送通知。最近,我为此应用程序使用 PHP 开发了一个 Web 应用程序。当他收到新消息、警报等时,我应该通知用户。

我阅读了许多博客并了解到使用WebSockets是一个很好的解决方案。

所以我的问题是

  1. 使用 Websockets 是一个好的解决方案吗?我还有其他好的选择吗?

  2. 如何在这里使用 WebSockets?用户登录后是否需要每隔一段时间向 Apache 服务器发送请求?如果是,建议的间隔值是多少?(如果可能,请帮助我提供示例)

  3. 我可以在共享主机中使用 WebSockets 吗?

0 投票
1 回答
1222 浏览

jsf - 当 p:poll 达到特定条件时从支持 bean 刷新/重定向

我正在使用 jsf 实现一个拍卖系统。

在商品页面中,我有一个倒计时,显示这次促销还剩多少时间。我用<p:outputlabel value=#{itemBean.timeToEnd()} />.

timeToEnd() 方法返回格式为:1 天、2 小时等的字符串。它在该 bean 内的 Date 对象上计算它。<p:poll>我每隔 1 秒用 , 更新标签。

我的问题是,当计数器达到 0 秒时,我想刷新整个页面,它会显示销售处于非活动状态。

在 timeToEnd() 中,我添加了一个逻辑,如果结束日期已过,或者结束的秒数为 0,则执行以下假设刷新页面的代码:

但它不会刷新页面。 我认为它不会刷新,因为该页面“活动”了一段时间。(用户从销售活动开始就在项目页面上)。

关于如何实施的任何想法?

PS我还尝试在客户端级别实现此倒计时,当我使用 c:set 存储结束日期,然后使用 javascript 或其他东西进行视图更新时。但后来我注意到代码也是如此

每次使用“enddate”都会调用服务器,而不是在本地存储日期,然后在不打扰服务器的情况下执行计算。所以我什至没有进入 javascript 部分。如果有办法在本地实施,很高兴听到它。

0 投票
3 回答
1850 浏览

javascript - 减少 AJAX 请求大小。与投票系统的简单聊天

注意: 我替换了我的投票系统,websockets我仍然想知道上述问题的答案。

我正在尝试减少传统轮询消息系统的 AJAX 请求,但我不知道如何获取它:

好吧,正如您所见,我使用setInterval()毫秒1000作为参数,并且由于SHA1校验和系统,我可以减少所有 AJAX 响应的大小343 B显然,“post.php”返回一些新消息时除外


问题:

  • 为什么我所有的 AJAX 请求都具有相同的大小343 B)即使我将SHA1 ( 20 B) 哈希更改为MD5 ( 16 B)?

  • 我的校验和变量 ( SHA1 ) 占用20 B剩下的在哪里 323 B

  • 我可以减少更多的 AJAX 请求大小吗? 如何?


笔记:

hex_sha1()是 Javascript 的SHA1算法的实现:http: //pajhome.org.uk/crypt/md5/sha1.html

笔记2:

不幸的是,我不能使用像node.js. 我只能使用 Javascript(客户端)和 PHP。

0 投票
1 回答
420 浏览

jsf - 可以在 p:poll 上下载文件

我正在尝试通过 p:poll 下载文件。

这是我的代码:

和支持豆:

我希望打开“另存为”对话框,但我只收到 JQuery json 解析错误。

我正在尝试下载的内容是来自外部 api 的消息结果,所以我不能突然得到这个。

也许是解决这个问题的另一种方法?