как обновить страницу после вставки базы данных или обновления в php или ajax

-2

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

  • 2
    Используйте AJAX для проверки обновлений с помощью setInterval . Google твой друг.
  • 0
    Вы написали «... любую помощь, пожалуйста ..», но если вы не комментируете и не отвечаете, то какую помощь вы получите.

4 ответа

1

Да, всегда есть способ. вы можете использовать кометное программирование и длительный опрос с использованием ajax и php.

Недостатком является то, что с использованием кометы ваш другой запрос на http будет Holt, поэтому для кометы вам нужно переписать сеанс, который лучше всего.

по вашему вопросу я предлагаю вам использовать myisam engine, потому что его отслеживание временной отметки, когда база данных изменена, поэтому вы будете знать, когда будет обновлена база данных.

Пример кода кометы приведен ниже.

index.php

<div id="content"></div>

<p id="form_container">
    <form action="" method="get" onsubmit="comet.doRequest($('#word').val());$('#word').val('');return false;">
        <input type="text" name="word" id="word" value="" />
        <input type="submit" name="submit" value="Send" />
    </form>
</p>
<script type="text/javascript" src="/jquery.js"></script>
<script type="text/javascript">

    var Comet = function (data_url)
    {
        this.timestamp = 0;
        this.url = data_url;  
        this.noerror = true;

        this.connect = function()
        {
            var self = this;

            $.ajax(
            {
                type : 'post',
                url : this.url,
                dataType : 'json', 
                data :
                {
                    'timestamp' : self.timestamp
                },
                success : function(response)
                {
                    self.timestamp = response.timestamp;
                    self.handleResponse(response);
                    self.noerror = true;          
                },
                complete : function(response)
                {
                    if (!self.noerror)
                    {
                        setTimeout(function(){ comet.connect(); }, 5000);           
                    }
                    else
                    {
                        self.connect(); 
                    }
                    self.noerror = false; 
                }
            });
        }

        this.disconnect = function() {}

        this.handleResponse = function(response)
        {
            $('#content').append('<div>' + response.msg + '</div>');
        }

        this.doRequest = function(request) {
            $.ajax(
            {
                type : 'post',
                url : this.url,
                data :
                {
                    'msg' : request
                }
            });
        }
    }

    var comet = new Comet('./backend.php');
    comet.connect();
</script>

backend.php

function get_date()
{
    $query = mysql_query("show table status from weefavr like 'request_responses'")or die(mysql_error());

    $row = array();
    while($result = mysql_fetch_assoc($query))
    {
        $row[] = $result;
    }
    return strtotime($row[0]['Update_time']);
}

$lastmodif    = isset($_POST['timestamp']) ? $_POST['timestamp'] : 0;
$currentmodif = get_date();

while ($currentmodif <= $lastmodif)
{
    usleep(10000);
    clearstatcache();
    $currentmodif = get_date();
}

$query_db = mysql_query("SELECT UNIX_TIMESTAMP(last_update.created) AS DATE,last_update.* FROM last_update WHERE UNIX_TIMESTAMP(last_update.created) BETWEEN '".$lastmodif."' AND '".$currentmodif."'")or die(mysql_error());

$row_db = array();
$response = array();
while($result_db = mysql_fetch_assoc($query_db))
{
    $response['msg'][]       = $result_db['title'];
}

$response['timestamp'] = $currentmodif;
$response['lastmodif'] = $lastmodif;
echo json_encode($response);
flush();

этот пример весьма полезен, но, как я сказал вам, ваш другой HTTP-запрос не будет работать. поэтому вам нужно немного взломать сеанс и другое.

и да Facebook, g mail, asana и zaarly - большой гигант, который использует кометное программирование.

Надеюсь, это поможет. Не стесняйтесь спрашивать ура...

0

Это будет PHP и Ajax. В случае, если вам это нужно, основное введение здесь. В основном вам нужно иметь веб-страницу, которая через Javascript асинхронно проверяет ваш сервер (страницу PHP), который обслуживает новый контент. У вас может быть Javascript-таймер или даже гораздо более сложные настройки, такие как бэкэнд, "нажатие" на вашу страницу. Я бы посоветовал вам проверить эту страницу на примере.

0

Здесь есть хороший учебник по PHP/MySQL/AJAX, и вы можете скачать его здесь, чтобы вы начали. Объедините это с логикой фильтрации на стороне сервера и периодическим обратным вызовом ajax, чтобы обновить каждую страницу, и вы сможете достичь того, что ищете.

0

Для этого вам нужно будет сделать запрос AJAX со своей страницы.

Когда пользователь выполняет действие, вы можете отправить запрос ajax и динамически обновить эту страницу пользователя. Все это также увидят это.

  • 0
    «Все остальные тоже увидят» - на основе действий одного пользователя. Конечно, это требует, чтобы все страницы опрашивали сервер на предмет обновлений?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню