如何使用 Javascript 使网页始终保持最新状态?
How to make a web page to be always up to date using Javascript?
这个网页有点像新闻板,我希望它用我的数据库中的最新数据更新它,这些数据是通过 API 传送的,而不需要刷新页面。
我认为最简单的方法是使用一个每 X 秒调用一次的计时器,但我正在寻找一种使用更少资源的更好方法。我阅读了有关 Webhooks 的信息,但我找不到实现它并获得我想要的东西的方法。
任何建议都会很有帮助。
提前致谢!
取决于您的后端技术。
如果您是 .NET 开发人员,最著名的 real-time web functionality
库是 SignalR.
还有很多其他库,例如 socket.io or APIs like pusher。
它们实施起来并不难,但由于它们无论如何都会给您的应用增加另一层复杂性,您可能需要更多地考虑在 publisher/subscriber 方法之间传输什么。
根据我的经验,当 属性 发生更改时,我们通常会向订阅者提供整个对象,但后来我们决定只通知所有订阅者有关更改,并由他们决定是否他们想用新数据刷新。
我想你问的是如何不断地从一个来源获得反馈。我不确定你的 API 是如何工作的,但如果你寻找的新闻元素是像 <iframe>
这样简单的东西,则可以使用 Javascript 检查是否有更新喜欢:
var mynewsfeed = ""; //Declares newsfeed variable
setInterval(function(){
if (API.update != nul) { //Should lighten the load on the processor
mynewsfeed = API.update() //Updates newsfeed
document.getElementById("newsfeediframe").src=mynewfeed;
}
}, 10000); //Will check every 10 seconds (can be shorter)
遗憾的是,由于您没有提供任何代码,或者 API 您使用的是什么,我无能为力。如果您编辑 post 会更容易提供帮助。
你可以尝试的另一件事是(如果 API 支持它)简单地做一些像
if (API.checkForUpdate()) {
//Do something
}
在您想要的时间间隔拨打 ajax 电话。这是您可能的答案-Call jQuery Ajax Request Each X Minutes
这个网页有点像新闻板,我希望它用我的数据库中的最新数据更新它,这些数据是通过 API 传送的,而不需要刷新页面。
我认为最简单的方法是使用一个每 X 秒调用一次的计时器,但我正在寻找一种使用更少资源的更好方法。我阅读了有关 Webhooks 的信息,但我找不到实现它并获得我想要的东西的方法。
任何建议都会很有帮助。 提前致谢!
取决于您的后端技术。
如果您是 .NET 开发人员,最著名的 real-time web functionality
库是 SignalR.
还有很多其他库,例如 socket.io or APIs like pusher。
它们实施起来并不难,但由于它们无论如何都会给您的应用增加另一层复杂性,您可能需要更多地考虑在 publisher/subscriber 方法之间传输什么。
根据我的经验,当 属性 发生更改时,我们通常会向订阅者提供整个对象,但后来我们决定只通知所有订阅者有关更改,并由他们决定是否他们想用新数据刷新。
我想你问的是如何不断地从一个来源获得反馈。我不确定你的 API 是如何工作的,但如果你寻找的新闻元素是像 <iframe>
这样简单的东西,则可以使用 Javascript 检查是否有更新喜欢:
var mynewsfeed = ""; //Declares newsfeed variable
setInterval(function(){
if (API.update != nul) { //Should lighten the load on the processor
mynewsfeed = API.update() //Updates newsfeed
document.getElementById("newsfeediframe").src=mynewfeed;
}
}, 10000); //Will check every 10 seconds (can be shorter)
遗憾的是,由于您没有提供任何代码,或者 API 您使用的是什么,我无能为力。如果您编辑 post 会更容易提供帮助。
你可以尝试的另一件事是(如果 API 支持它)简单地做一些像
if (API.checkForUpdate()) {
//Do something
}
在您想要的时间间隔拨打 ajax 电话。这是您可能的答案-Call jQuery Ajax Request Each X Minutes