Javascript ajax 仅在需要时刷新
Posted
技术标签:
【中文标题】Javascript ajax 仅在需要时刷新【英文标题】:Javascript ajax refresh only when needed 【发布时间】:2018-08-15 20:21:41 【问题描述】:我有一个 Web 应用程序,它显示从 AJAX 请求接收到的数据到在同一服务器上运行的 php 脚本。在我的例子中,它是一个 Spotify 播放器的播放。因为我希望这些信息尽可能是最新的(如果歌曲发生变化等),我目前的方法是每秒发送一个请求。是否有可能例如将“数据已更改”-触发器从 PHP 服务器发送到 javascript,这样才会触发 AJAX 请求,以减少客户端不需要的流量?还是我缺少另一种方法可以更优雅地解决这个问题?
【问题讨论】:
您当前的 AJAX 设置称为轮询,非常常见。您设想的选项称为websockets,它们的配置和实现方式不同。如果您还没有准备好使用 websockets,那么请考虑在后端提高轮询效率的方法。 您所描述的不需要任何复杂的东西,AJAX 调用是在与服务器应用程序相同的机器上进行的。只是不要太频繁地打电话,它会没事的。我唯一的建议是在成功通话后使用setTimeout()
,而不是setInterval()
(如果你这样做的话)
你能把你的代码也贴出来
【参考方案1】:
好吧,既然它不是生产产品,仅供个人使用,你可以做的是:
JavaScript UI:像现在一样进行调用。完成后,再次调用(成功、错误、超时)。
服务器端:记住最后一首歌曲是什么,当您获得一首新歌曲(与上一首歌曲相比)时,通过打开的 AJAX 调用将其发回。
基本上它会像一个网络套接字一样一直向服务器打开一个请求。这不是一个好的设计,但是让您的宠物项目运行起来又快又脏,而无需对其进行重组以使用 Web 套接字。
【讨论】:
以上是关于Javascript ajax 仅在需要时刷新的主要内容,如果未能解决你的问题,请参考以下文章
页面仅在第一次通过 jquery 在 mvc 中刷新 ajax 调用响应