在浏览器中显示实时数据而不刷新


Show live data in browser without refresh

我浏览了网络,包括Stack Overflow的"问答"历史记录,但找不到与我的相关答案;也许是因为我并不真正理解所有用英语发布的帖子,但作为一个编程初学者,我真的需要这个解释,我认为它应该清晰易懂。

我的问题是,有没有一些简单的方法来制作PHP和JavaScript来回答这个问题:

我有两台电脑在线,其中一台电脑打开"我的网站",网站顶部有滚动新闻。另一台电脑在我手里,在管理区内。

现在,我在我的管理区域的"新闻表数据库"中添加了一个新数据,键入它,然后点击。

然后我看着另一台电脑,我希望新的数据在那里,而不接触键盘的任何部分。

仅此而已,也许只是一个简单的问题。这对Facebook的开发人员来说很容易,但对我来说不是。我需要了解这一点的人详细解释。我知道一点PDO,但不太了解JS。

方法1:创建一个记录插入内容的日志表,然后让javascript向实现长轮询的脚本发出请求:

$time=(isset($_GET['timestamp']) ? $_GET['timestamp'] : time());
while(true){
    if($data=get_new_data($time)){
        echo $data;
        exit;
    }
    sleep(5);
}

方法2:通过扩展上面的方法发送websocket消息,将$time设置为time(),然后休眠而不是退出,使用web套接字在插入数据时将数据推送到客户端。https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API