首页 > 解决方案 > 每 X 秒获取一次计数,加载超过 10 亿个 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);

标签: javascriptjqueryajax

解决方案


你的代码没问题。它不是“加载超过 10 亿个 XHR 请求”,而是每 X 秒开始(并完成 - 正如我们所见)一个请求,这没有任何问题。

然而,这并不是实现推送通知系统的最佳方式。那将是websockets,这是您的客户端“侦听”来自服务器的消息的一种方式。有这方面的框架,最流行的一个(也是我推荐的一个)是socket.io

您的第三个也是最先进/现代的解决方案将实施基于服务人员的通知系统,但我很确定这太复杂且不适合您,因为您甚至无法充分理解您的问题来描述它。


推荐阅读