1

How would I be able to make it so that my news feed on my website checks whether there is new status updates in a set interval and then display a button saying "(?) New Messages", then when it is clicked it loads only the new ones and appends them inside the same feed div?

I thought of a few ways of doing this, but they all ended up in complications as I don't want to replace the ones already loaded (since I have a limit of 10 and I have a load more button at the bottom to load earlier posts).

4

3 回答 3

2

您可以执行以下步骤:

  1. 制作一个返回新消息或false没有新消息时的 PHP 脚本
  2. 使用 jQuery 将 Ajax 调用写入 PHP 脚本
  3. 检查响应是否正在返回或数据,将其显示到您页面上false的某个位置div
  4. 如果返回大量消息,请计算它们并删除已加载的消息以保持 10 条消息的限制
  5. 设置执行 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

}
于 2013-07-22T11:15:40.873 回答
0

如果你已经完成了 feedsdiv,那么

假设您的新闻提要就像

<div id="feed"><div>

您正在将提要加载到 div "feed",然后

您可以按如下方式添加新提要

$("#feed").append("YourNewFeedHTML");
于 2013-07-22T11:17:21.837 回答
0

如果您真的不想删除现有帖子,一种可能的策略是允许超过通过 setinterval 驱动的调用上传的可见消息的限制,或者为它们设置更大的限制,例如 15,并且只在边缘情况下删除消息。另一方面是该“收件箱”中邮件的状态。引入“已读”状态将有助于管理收件箱,并可能在有大量新消息进入时清除已读消息。我认为该方法取决于预期的消息率,无论如何您都必须解决一些边缘案例

于 2013-07-22T11:26:26.357 回答