JQuery / AJAX загружать новый контент, когда доступно - PullRequest
0 голосов
/ 07 мая 2010

Я знаю, что это довольно расплывчатый вопрос - извините за это.Если у меня есть форум, чат или что-то подобное, где пользователи вводят и отправляют данные, работающие на PHP и MySQL, каков наилучший способ автоматического отображения вновь отправленного контента на странице для всех пользователей при его отправке?

Очень похоже на прямую новостную ленту, если хотите ... Эффект вроде работает здесь в stackoverflow, когда вы отвечаете на вопрос, который вам сообщают при отправке нового ответа.Я хочу протестировать новый контент и автоматически отобразить его.

Есть предложения?Большое спасибо:)

1 Ответ

3 голосов
/ 07 мая 2010

Очевидно, что первое, что приходит на ум, - это легкий 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, если это так, создайте свои элементы и добавьте их в свой контейнер.

...