一尘不染

jQuery / ajax在可用时加载新内容

ajax

我知道这是一个模糊的问题-
对此感到抱歉。如果我有一个在PHP和MySQL上运行的论坛,聊天室或类似的地方,用户可以在其中输入和提交数据,那么什么是最好的方式来使新提交的内容在提交后自动在页面上显示给所有用户?

如果您愿意,它很像实时新闻源…效果排序在这里适用于stackoverflow,当您回答问题时,系统会在您提交新答案时告知您。我想测试新提交的内容,然后自动显示它。

有什么建议?非常感谢 :)


阅读 232

收藏
2020-07-26

共1个答案

一尘不染

显然,想到的第一件事是每x秒检查一个新内容的轻量级AJAX请求。

类似于http://buntin.org/2008/09/23/jquery-polling-
plugin/

编辑: 这未经测试。

AJAX呼叫至 http://example.com?lastCheck=1273244156

PHP: 
<?
    if(isset($_GET['lastCheck'])){
        $ts = mysql_real_escape_string($_GET['lastCheck']);

        $result = mysql_query("SELECT * FROM `table` WHERE `timestamp` >= {$ts}");
        $rows = mysql_fetch_array($result, MYSQL_ASSOC);

        if($rows){
            header('Cache-Control: no-cache, must-revalidate');
            header('Content-type: application/json');
            echo json_encode($rows);
        }
    }
?>

然后使用jQuery检查AJAX响应是否为有效JSON,如果是,则构建您的项目并将其附加到您的容器中。

2020-07-26