我该如何使我的网站上的新闻提要在设置的时间间隔内检查是否有新的状态更新,然后显示一个按钮,上面写着"(?)新消息",然后单击它时,它只加载新消息,并将它们附加到同一提要div中?
我想了几种方法来做到这一点,但它们都以复杂告终,因为我不想替换已经加载的(因为我的限制是10,并且我在底部有一个加载更多按钮来加载以前的帖子)。
您可以执行以下步骤:
- 制作一个PHP脚本,在没有新消息时返回新消息或
false
- 使用jQuery编写对PHP脚本的Ajax调用
- 检查响应是否返回
false
或数据,将其显示到页面上的某个div
- 如果返回了大量消息,请对其进行计数并删除已加载的消息,以保持10条消息的限制
- 设置Ajax调用的执行间隔
试试看。当你有一些代码时:编辑你的问题(与你的尝试),我们可以在必要时进一步帮助你。SO不是你可以"订购"现成的伴侣脚本的地方;-)
伪码
PHP
if(amount of results from database after last update time) {
return messages
}else{
return false
}
jQuery
send last update time with Ajax
if(return of Ajax == false) {
do nothing
}else{
prepend messages to certain div
remove last messages to stay at limit of 10 messages
set last update time
}
如果您已经完成了feedsdiv,那么
假设您的新闻源类似
<div id="feed"><div>
您正在将提要加载到div"feed",然后是
您可以按以下添加新的提要
$("#feed").append("YourNewFeedHTML");
如果你真的不想删除现有的帖子,一种可能的策略是允许通过setinterval驱动的调用上传的可见消息超过限制,或者为它们设置一个更大的限制,比如15,只在边缘情况下删除消息。另一个方面是"收件箱"中邮件的状态。引入"已读"状态将有助于管理收件箱,并可能在收到大量新邮件时清除已读邮件。我想这种方法取决于预期的邮件率,在任何情况下,您都必须解决一些边缘情况。