Получите счет каждые X секундную загрузку более 1 миллиарда запросов XHR

Я использую, setIntervalчтобы каждый счетчик уведомлений 5 second, я думаю, что это плохая идея получить эти результаты. потому что, если вы останетесь на моем сайте некоторое время, вы получите миллиард загрузок загрузки XHR.
И если вы используете facebook, вы не получаете много XHR.

Вот мой захват веб-сайта XHR: введите описание изображения здесь

Мой код в файле notification.php::

function getnotificount(){
$.post('getnotificount.php', function(data) {
        $('#notifi_count').html(data); 
    });
}

setInterval(function(){
     getnotificount();
}, 5000);

javascript,jquery,ajax,

4

Ответов: 3


3

Ваш код в порядке. Это не «загрузка более 1 миллиарда запросов XHR», это запуск (и завершение - как мы видим) запроса каждые X секунд, и нет ничего плохого в этом.

Однако это не лучший способ реализовать систему push-уведомлений. Это будут веб-узлы , что позволяет вашему клиенту «слушать» сообщения с вашего сервера. Существуют рамки для этого, самого популярного (и того, который я рекомендую), который является socket.io .

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


0

То, что вы делаете, - это опрос, который делает новый запрос на сервер на регулярной основе. Для HTTP-запроса открывается TCP-соединение, запрос / ответ обмениваются и соединение TCP закрывается. Это то, что происходит каждые 5 секунд в вашем случае.

Если вы хотите получить более легкое решение, посмотрите на такие веб- узлы, как socket.io . Только одно TCP-соединение открывается и поддерживается между передней и задней панелями. Этот двунаправленный коннектор позволяет спине уведомлять фронт, когда что-то происходит.


0

Это совсем неплохая идея. Он называется опросом и используется во многих местах в качестве средства для регулярного получения данных с сервера. Однако это не лучшее и не самое современное решение для этого. Фактически, если ваш сервер поддерживает WebSockets , вы должны их использовать. Вам не нужно использовать NodeJS для использования WebSockets, поскольку WebSocket - это протокол создания дуплексного канала связи между вашим сервером и клиентом. Вы должны прочитать о WebSockets. Кроме того, вы можете использовать push-уведомление, которое по моему мнению уступает WebSockets. И хакерский способ - использовать вечный кадр.

JavaScript, JQuery, AJAX,
Похожие вопросы