javascript - 一定时间间隔后自动更新页面

标签 javascript php jquery html ajax

enter image description here我有一个网站,人们可以像任何社交媒体一样添加帖子和评论。

除了自动更新功能之外,一切都运行良好:我想要的是每 20 秒后自动更新页面。

通过更新页面,我的意思是它会自动显示新添加的帖子和评论到页面。

我可以通过像

这样的 ajax 加载函数来做到这一点
$('#divid').load("page.php #divid");

但在这种情况下存在一个问题:当任何用户输入内容时,如果重新加载 div,用户文本就会丢失;如果我有无限滚动加载功能,导致网站一次又一次加载项目,该怎么办?

我认为这是可能的,因为许多网站都这样做,类似于 gmail 向我们显示新电子邮件而无需重新加载 div。

最佳答案

您应该做的是将新帖子添加到页面顶部,而不是重新加载所有内容。

AJAX 响应的示例应如下所示:

{
    "posts": [
        {
            "id": "1234",
            "title": "Post Title",
            ...
        },
        {
            "id": "1235",
            "title": "Post Title",
            ...
        }
    ],
    "comments": [
        {
            "id": "12345678",
            "post_id": "1112",
            "content": "foo",
            ...
        }
    ]
}

posts 数组应添加到页面前面。 comments 数组的每一项都应附加到相应帖子的 comments 部分。

关于javascript - 一定时间间隔后自动更新页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29328901/

相关文章:

javascript - 如何使用 PHP 循环 Dom 并查找 data-id

javascript - Echo JS onclick 填充功能 AJAX 不工作

javascript - 通过单击 Handlebars 插入的 anchor 元素来触发事件

javascript - CSS Transitions 在参数化函数中不起作用

javascript - 可以即时进行语法突出显示的文本区域?

PHP mysql 到 mysqli 的迁移问题(自定义函数、程序样式)

php - 如何将 php 数组构造为 json

javascript - 仅在第一个时才考虑动态添加的样式表

javascript - 如何在页面调整大小时禁用 Bootstrap 弹出窗口

javascript - 我怎样才能制作一个向上滑动以显示页面而不完全隐藏它的div?