Насколько безопасно использовать Ajax-запрос каждую секунду? - PullRequest
0 голосов
/ 11 июля 2019

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

function refresh(){
setTimeout(function(){
    $.ajax({
        type: 'POST',
        url: 'checkNewMessage.php',
        data: { sender:$sender, recipient:$recipient},
        success: function(response) {
          $('#newComm').val(response);
          if($('#newComm').val()>$('#oldComm').val()){

                  $.ajax({
                type: 'POST',
                url: 'appendNewMessage.php',
                data: { sender:$sender, recipient:$recipient},
                success: function(response) {
                  $("#chatRoom").prepend(response).fadeIn(4000);
                  $('#oldComm').val($('#newComm').val());
                }
            });

          }else{}
        }
    });
refresh();
},1000);

}

1 Ответ

1 голос
/ 11 июля 2019

Ну, это вопрос, который зависит от ответа.

Опрос сервера с запросами по времени - не лучший способ достичь того, чего вы хотели бы достичь. В этом месте я рекомендую использовать WebSockets: https://developer.mozilla.org/en-US/docs/Glossary/WebSockets

Но вернемся к вашему вопросу. Это зависит от вашего сервера и нагрузки, которую он собирается принять. Допустим, у вас есть десять активных пользователей. Таким образом, ваш сервер будет принимать около 10 запросов в секунду - не слишком много.

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

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

...