前端性能优化:使用 Web Workers 实现轮询
// pollWorker.js
import { Base64 } from 'js-base64';
import RsaAndAes from '~/composables/RsaAndAes';
import { getRandomNumberFn } from '~/composables/baseRequest';
export function createWorker() {
const blob = new Blob(
[
`
let requestCount = 0;
// 处理收到的消息
self.onmessage = function (event) {
if (event.data.type === "start") {
// 开始轮询
const interval = event.data.interval;
startPolling(interval, event.data.url, event.data.data, event.data.headers);
}
};
// 开始轮询函数
function startPolling(interval, url, data, headers) {
function poll() {
fetch(url, {
method: "POST",
headers: new Headers(headers),
body: JSON.stringify({ ...data }),
})
.then((response) => {
return response.json();
})
.then((res) => {
// 将请求结果发送回主线程
self.postMessage({ res, requestCount: requestCount++ });
})
.catch((error) => {
console.log("Request failed:", error);
});
// 调用自身以实现持续轮询
setTimeout(poll, interval);
}
// 立即执行一次
poll();
}
`
],
{ type: 'application/javascript' }
);
const worker = new Worker(URL.createObjectURL(blob));
// 将post函数传递给WebWorker
const TOKEN = '';
const saveData = JSON.parse(JSON.stringify({} || {}));
const config = {};
const interDomainName = '';
const ENV = '';
const nodeEnv = '';
const Key = ''; //存储公钥
// 发送开始消息给WebWorker,传递轮询间隔
worker.postMessage({
type: 'start',
interval: 5000,
url: 'http://192.168.110.145:18200/gateway/xxxxxxx',
headers: {
'content-type': 'application/json; charset=utf-8',
partnerId: 'MTAy',
time: '',
accountId: '',
countries: '',
authToken: TOKEN,
requestId: ''
},
data: {
secretCode: RsaAndAes.encrypt(Key),
encryptedData: RsaAndAes.encryptAes(saveData)
}
}); // 每5秒轮询一次
return worker;
}
前端性能优化:使用 Web Workers 实现轮询的更多相关文章
- web前端性能优化指南
web前端性能优化指南 web前端性能优化指南 概述 1. PC优化手段在Mobile侧同样适用2. 在Mobile侧我们提出三秒种渲染完成首屏指标3. 基于第二点,首屏加载3秒完成或使用Loadin ...
- Web前端性能优化进阶——完结篇
前言 在之前的文章 如何优化网站性能,提高页面加载速度 中,我们简单介绍了网站性能优化的重要性以及几种网站性能优化的方法(没有看过的可以狂戳 链接 移步过去看一下),那么今天我们深入讨论如何进一步优化 ...
- WEB前端性能优化常见方法
1.https://segmentfault.com/a/1190000008829958 (WEB前端性能优化常见方法) 2..https://blog.csdn.net/mahoking/arti ...
- web前端性能优化指南(转)
web前端性能优化指南 概述 1. PC优化手段在Mobile侧同样适用2. 在Mobile侧我们提出三秒种渲染完成首屏指标3. 基于第二点,首屏加载3秒完成或使用Loading4. 基于联通3G网络 ...
- Web前端性能优化教程09:图像和Cookie优化
本文是Web前端性能优化系列文章中的第九篇,主要讲述内容:图像和Cookie优化.完整教程可查看: 一. 图像优化 图像基础知识 gif: 适用于动画效果,例如提示的滚动条图案 jpg: 是一种使用 ...
- Web前端性能优化教程06:减少DNS查找、避免重定向
本文是Web前端性能优化系列文章中的第六篇,主要讲述内容:减少DNS查找.避免重定向.完整教程可查看: 一.减少DNS查找 基础知识 DNS(Domain Name System): 负责将域名UR ...
- Web前端性能优化教程08:配置ETag
本文是Web前端性能优化系列文章中的第五篇,主要讲述内容:配置ETag.完整教程可查看:Web前端性能优化 什么是ETag? 实体标签(EntityTag)是唯一标识了一个组件的一个特定版本的字符串, ...
- Web前端性能优化教程05:网站样式和脚本
本文是Web前端性能优化系列文章中的第五篇,主要讲述内容:网站样式和脚本代码的放置位置.使用外部javascript和css.完整教程可查看:Web前端性能优化 一.将样式表放在顶部 可视性回馈的重要 ...
- Web前端性能优化教程03:添加Expires头
本文是Web前端性能优化系列文章中的第三篇,主要讲述添内容:加Expires头.完整教程可查看:Web前端性能优化 什么是Expires头? Expires存储的是一个用来控制缓存失效的日期.当浏览器 ...
- Web前端性能优化教程04:压缩组件
本文是Web前端性能优化系列文章中的第四篇,主要讲述内容:压缩组件.完整教程可查看:Web前端性能优化 基础知识 gzip编码:gzip是GUNzip的缩写,是使用无损压缩算法的一种,最早是用于Uni ...
随机推荐
- 新员工一口气写完了这些C语言例子,领导给他转正了!
持续更新中... 很多想从事嵌入式Linux开发的老铁问一口君,有没有快速提升自己编程水平的小例子? 一口君根据自己多年工作经验,整理了一些基于Linux的c语言的非常实用的小例子, 这些例子在嵌入式 ...
- pipx 使用
pipx 用于在孤立环境中安装和运行 Python 应用程序.类似 Node.js 中的 npx. 安装 macOS: brew install pipx pipx ensurepath Ubuntu ...
- 在虚拟机CentOS中安装docker
公众号本文地址:在虚拟机CentOS中安装Docker 1.关闭防火墙 docker需要用到网络,所以需要关闭防火墙.进入管理员模式获得权限后进行关闭. su 关闭防火墙: systemctl dis ...
- C++ 性能反向优化——用哈希表unordered_map消除if else导致性能降低。
从代码整洁的角度考虑,对于不同的值将调用相同参数的不同函数,我们通常可以通过建立从值到对应函数指针的哈希表,从而将if else消除.但实际可能使性能更低,以下是测试例子. 原因在于,if else分 ...
- SPIE独立出版。遥感征稿中--2024年遥感与数字地球国际学术会议(RSDE 2024)
[成都,遥感主题,稳定EI检索]2024年遥感与数字地球国际学术会议(RSDE 2024) 2024 International Conference on Remote Sensing and ...
- ToCom:一次训练随意使用,华为提出通用的ViT标记压缩器 | ECCV 2024
标记压缩通过减少冗余标记的数量(例如,修剪不重要的标记或合并相似的标记)来加快视觉变换器(ViTs)的训练和推理.然而,当这些方法应用于下游任务时,如果训练和推理阶段的压缩程度不匹配,会导致显著的性能 ...
- .NET 9 RC1 正式发布
.NET 9 RC1 是 .NET 9 的第一个候选发布版本(Release Candidate),标志着该版本接近最终发布.根据Github 上相关的内容,我们可以总结出以下几点: 新功能和改进: ...
- SimMTM: 用于掩码时间序列建模的简单预训练框架《SimMTM: A Simple Pre-Training Framework for Masked Time-Series Modeling》(预训练模型、时序表征学习、掩码建模、流行学习、近邻聚合、低级表示学习(掩码)、高级表示学习(对比)、segment-wise 和point- wise)
今天是2024年7月3日10:15,写一篇1月7日就看过的论文,哈哈哈哈哈哈哈哈哈,突然想到这篇论文了. 论文:SimMTM: A Simple Pre-Training Framework for ...
- SEO – 大杂烩
参考: Google SEO 官网 Docs Zac 大神博客 Globalization 国际化语言 The Ultimate Guide to Multilingual and Multiregi ...
- excel江湖异闻录--修迪斯.嗦狸
因为技术出类拔萃,同学都尊称他为"修神",修神的python.vba.Javascript.java.数据库.批处理等众多编程语言都是极强的,以笔者的见识来判断,大佬的vba已经是 ...