Ajax постоянные обновления div

186
24 сентября 2017, 00:40

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

Использую VPS сервер на Apache, MYSLi базу и PHP 7.2

Сама функция:

    <script>
        function show()  
        {
            $.ajax({
                type: 'POST',
                url: 'greetings.php',
                data: 'message=show_all',
                cache: false,  
                beforeSend: function() {
                $('.content').html('Получаем контент');
                },
                success: function(html){
                    $('.content').html(html);
                }  
            });  
        }  
$(document).ready(function(){  
    show();
    setInterval('show()',4000);
 }); 
    </script>
Answer 1

А что Вы, собственно, ожидали? В коде ясно написано обновление после выполнения запроса.
Для исправления: делайте проверку - есть ли в пришедшем что-то новое и только тогда обновляйте.
Но для чата в наше время использовать цикл бесконечных запросов - моветон, ибо есть (веб)сокеты, долгие запросы на худой конец.

READ ALSO
Проблема с кнопкой (OpenCart)

Проблема с кнопкой (OpenCart)

Кнопка оформления заказа отправляет заказ, но не перенаправляет на страницу спасибо, раньше такой проблемы не было, с чем это может быть связано?

161
Сортировка и фильтр поля из связанной модели Yii2

Сортировка и фильтр поля из связанной модели Yii2

И снова про фильтр и сортировку связанных моделей в Yii2 если позволите

819
Поиск по ключевым. Релевантность

Поиск по ключевым. Релевантность

Есть таблица с ключевыми словами и связками вида (ключевое слово -> id товара)Как грамотно сделать релеватность ?

230
планирование отправки письма в yii2

планирование отправки письма в yii2

мне надо заплонировать отправку письма после того как пройдет 5дней с data1_start, на email адреса заполненных данных

249