javascript - 每 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);
解决方案
你的代码没问题。它不是“加载超过 10 亿个 XHR 请求”,而是每 X 秒开始(并完成 - 正如我们所见)一个请求,这没有任何问题。
然而,这并不是实现推送通知系统的最佳方式。那将是websockets,这是您的客户端“侦听”来自服务器的消息的一种方式。有这方面的框架,最流行的一个(也是我推荐的一个)是socket.io。
您的第三个也是最先进/现代的解决方案将实施基于服务人员的通知系统,但我很确定这太复杂且不适合您,因为您甚至无法充分理解您的问题来描述它。
推荐阅读
- css - 将 vuetify 样式提取到 css 文件
- javascript - XMLHTTPRequest onreadystatechange readyState 总是 1?
- php - 如何正确映射对象数组
- javascript - 如何
使用 Javascript Excel API 用换行符替换 XML - c# - Uri uri = new Uri ("psCom;component/Resources/Images.xaml", UriKind.Relative); 使用旧版本的 Images.xaml
- function - 如何在 React 函数组件(useState 挂钩)中访问 ag-Grid API?
- spring - 如何使用 Spring RestController 生成和使用 RabbitMQ 消息并将其发送回用户
- html - 光滑的轮播(下一个/上一个按钮放置)
- oracle - 带有自定义事件“beforeunload”的 Oracle Apex 4.2 动态操作不起作用
- c# - 使用表单授权模拟用户