当前位置: 首页 > news >正文

潍坊高端网站设计接推广一般多少钱

潍坊高端网站设计,接推广一般多少钱,诸暨广川建设公司网站,做机械加工外贸网站哪家好Web Worker(消息传递机制) 定义:是为了在浏览器中提供多线程支持,允许 JavaScript 在后台线程运行,而不阻塞主线程。它非常适合执行耗时的计算任务或处理大量数据,避免主线程(通常是 UI 线程&a…

Web Worker(消息传递机制)

  1. 定义:是为了在浏览器中提供多线程支持,允许 JavaScript 在后台线程运行,而不阻塞主线程。它非常适合执行耗时的计算任务或处理大量数据,避免主线程(通常是 UI 线程)被阻塞,从而保证用户界面的流畅性。
  2. 应用:运行后台任务,执行长时间运行的计算或操作,诸如图像处理、文件处理、大数据分析等。它并不直接与网络通信或实时消息传递相关。
  3. 原理:创建Web Worker分配一个新的线程(即后台线程),它一个独立的执行上下文,和主线程相互隔离,且不能直接操作 DOM 或访问主线程中的变量,它和主线程之间的通信是异步的通常是通过 postMessageonmessage 方法进行数据传输。
    // 创建一个 Worker
    const worker = new Worker('worker.js');// 发送消息到 Worker
    worker.postMessage({ type: 'start', data: 1000 });  // 1000ms 的间隔// 接收 Worker 返回的消息
    worker.onmessage = (event) => {console.log(event.data);  // 输出 Worker 返回的数据
    };// 停止 Worker
    worker.postMessage({ type: 'stop' });
    

应用计时器:

// worker.js
let setIntervaler = null
let count = 0// 启动定时器
function start(timeout) {setIntervaler = setInterval(() => {postMessage({type: 'next',data: ++count})}, timeout)
}// 停止定时器并关闭 Worker
function stop() {clearInterval(setIntervaler)count = 0 // 重置计数self.close() // 关闭 Worker
}// 监听来自主线程的消息
self.addEventListener('message', (e) => {let { type, data } = e.data // 解构消息数据switch (type) {case 'start':start(data) // 启动定时器breakcase 'stop':stop() // 停止定时器breakdefault:break}
})
<template><div><h1>Web Worker 定时器</h1><p>计数: {{ count }}</p><button @click="startTimer" :disabled="isRunning">启动定时器</button><button @click="stopTimer" :disabled="!isRunning">停止定时器</button></div>
</template><script setup>
import { ref, onUnmounted } from 'vue';// 定义 Vue 组件的状态
const count = ref(0);
const isRunning = ref(false);// 创建 Worker 实例
// src\utils\worker.js
const worker = new Worker(new URL('../utils/worker.js', import.meta.url));// 监听 Worker 返回的数据
worker.onmessage = (e) => {const { type, data } = e.data;switch (type) {case 'ready':console.log(data); // Worker 已准备好break;case 'next':count.value = data; // 更新计数器break;default:break;}
};// 启动定时器
const startTimer = () => {worker.postMessage({ type: 'start', data: 1000 }); // 1000 毫秒(1秒)为定时器间隔isRunning.value = true; // 更新状态为运行中
};// 停止定时器
const stopTimer = () => {worker.postMessage({ type: 'stop' });isRunning.value = false; // 更新状态为停止
};// 清理 Worker 实例
onUnmounted(() => {worker.terminate(); // 组件销毁时终止 Worker
});
</script><style scoped>
button {margin: 10px;padding: 10px;font-size: 16px;
}
</style>

WebSocket(握手连接通信)

  1. 定义:是一种在客户端和服务器之间建立持久连接的协议,它允许双方在连接建立后进行双向实时通信。WebSocket 主要用于需要实时数据更新的应用场景,如实时聊天、在线游戏、股票行情、推送通知等
  2. 应用:客户端和服务器之间可以保持一个长连接,允许实时交换数据,适合实时应用程序的场景。
  3. 原理:用 HTTP 协议进行握手建立连接,通信将转为基于 TCP 的实时双向通信(全双工通信),可以随时从客户端或服务器端通过 send 方法发送数据,通过 onmessage 监听接收到的消息。
    // 创建 WebSocket 连接
    const socket = new WebSocket('ws://example.com/socket');// 连接成功后发送消息
    socket.onopen = () => {socket.send('Hello, server!');
    };// 接收来自服务器的消息
    socket.onmessage = (event) => {console.log('Message from server:', event.data);
    };// 发送消息给服务器
    socket.send('Another message');// 关闭连接
    socket.close();
    

总结:

特性Web WorkerWebSocket
主要目的后台线程处理计算任务,避免阻塞主线程双向实时通信,实时数据交换
通信方式主线程与 Worker 通过消息传递客户端与服务器之间的持久连接,双向通信
适用场景长时间运行的计算任务,数据处理实时应用程序,如聊天、推送通知、在线游戏
通信延迟主要用于计算任务,没有即时通信需求适合低延迟、高实时性的双向通信
关闭方式worker.terminate()self.close()socket.close()


追更:

Web Worker 是一个独立的线程,当你调用 self.close() 时,Worker 被终止,所有的状态(如定时器)也会丢失。

因此,想要再次启动定时器则不关闭Worker直到组件被销毁!!!

// worker.js
let setIntervaler = null;
let count = 0;
let isRunning = false; // 标志定时器是否正在运行// 启动定时器
function start(timeout) {if (!isRunning) {isRunning = true; // 标记定时器已启动setIntervaler = setInterval(() => {postMessage({type: 'next',data: ++count});}, timeout);}
}// 停止定时器
function stop() {if (isRunning) {clearInterval(setIntervaler);isRunning = false; // 标记定时器已停止}
}// 监听来自主线程的消息
self.addEventListener('message', (e) => {const { type, data } = e.data;switch (type) {case 'start':start(data); // 启动定时器break;case 'stop':stop(); // 停止定时器break;default:break;}
});
<template><div><h1>Web Worker 定时器</h1><p>计数: {{ count }}</p><button @click="startTimer" :disabled="isRunning">启动定时器</button><button @click="stopTimer" :disabled="!isRunning">停止定时器</button></div>
</template><script setup>
import { ref, onUnmounted } from 'vue';// 定义 Vue 组件的状态
const count = ref(0);
const isRunning = ref(false);// 创建 Worker 实例,保持 Worker 持续存在
const worker = new Worker(new URL('../utils/worker.js', import.meta.url));// 监听 Worker 返回的数据
worker.onmessage = (e) => {const { type, data } = e.data;switch (type) {case 'ready':console.log(data); // Worker 已准备好break;case 'next':count.value = data; // 更新计数器break;default:break;}
};// 启动定时器
const startTimer = () => {if (!isRunning.value) {worker.postMessage({ type: 'start', data: 1000 }); // 1000 毫秒(1秒)为定时器间隔isRunning.value = true; // 更新状态为运行中}
};// 停止定时器
const stopTimer = () => {if (isRunning.value) {worker.postMessage({ type: 'stop' });isRunning.value = false; // 更新状态为停止}
};// 清理 Worker 实例
onUnmounted(() => {worker.terminate(); // 组件销毁时终止 Worker
});
</script><style scoped>
button {margin: 10px;padding: 10px;font-size: 16px;
}
</style>


文章转载自:
http://wetly.bwmq.cn
http://pint.bwmq.cn
http://detainee.bwmq.cn
http://asterisk.bwmq.cn
http://ferromagnetic.bwmq.cn
http://mouflon.bwmq.cn
http://laocoon.bwmq.cn
http://nog.bwmq.cn
http://yttrotungstite.bwmq.cn
http://scampish.bwmq.cn
http://orthorhombic.bwmq.cn
http://trilaminar.bwmq.cn
http://valentinite.bwmq.cn
http://bonze.bwmq.cn
http://godwin.bwmq.cn
http://armonica.bwmq.cn
http://heliolatry.bwmq.cn
http://operationalize.bwmq.cn
http://immobility.bwmq.cn
http://foremost.bwmq.cn
http://doughty.bwmq.cn
http://cytherea.bwmq.cn
http://cymene.bwmq.cn
http://lightheaded.bwmq.cn
http://stratigrapher.bwmq.cn
http://sulphurweed.bwmq.cn
http://boudicca.bwmq.cn
http://dissoluble.bwmq.cn
http://tricker.bwmq.cn
http://mpaa.bwmq.cn
http://anourous.bwmq.cn
http://eidetic.bwmq.cn
http://enfilade.bwmq.cn
http://endearing.bwmq.cn
http://talking.bwmq.cn
http://spaciously.bwmq.cn
http://inutterable.bwmq.cn
http://safe.bwmq.cn
http://resurgent.bwmq.cn
http://trippet.bwmq.cn
http://lee.bwmq.cn
http://swingletree.bwmq.cn
http://maximite.bwmq.cn
http://appear.bwmq.cn
http://recommencement.bwmq.cn
http://tarantism.bwmq.cn
http://woodenware.bwmq.cn
http://priority.bwmq.cn
http://irgb.bwmq.cn
http://arthropoda.bwmq.cn
http://witless.bwmq.cn
http://blove.bwmq.cn
http://tenebrosity.bwmq.cn
http://remelt.bwmq.cn
http://aggie.bwmq.cn
http://ducky.bwmq.cn
http://overelaborate.bwmq.cn
http://qintar.bwmq.cn
http://kechua.bwmq.cn
http://grouch.bwmq.cn
http://gluewater.bwmq.cn
http://scintiscan.bwmq.cn
http://unionist.bwmq.cn
http://infanticipate.bwmq.cn
http://forward.bwmq.cn
http://hum.bwmq.cn
http://ligamenta.bwmq.cn
http://prodromic.bwmq.cn
http://amate.bwmq.cn
http://scantly.bwmq.cn
http://breezeless.bwmq.cn
http://nephroid.bwmq.cn
http://foetation.bwmq.cn
http://doze.bwmq.cn
http://hidalgo.bwmq.cn
http://idoneousness.bwmq.cn
http://tricorn.bwmq.cn
http://hypergalactia.bwmq.cn
http://dahoon.bwmq.cn
http://bingy.bwmq.cn
http://wellspring.bwmq.cn
http://rainwear.bwmq.cn
http://utwa.bwmq.cn
http://speculum.bwmq.cn
http://corndodger.bwmq.cn
http://teleostean.bwmq.cn
http://sporophyll.bwmq.cn
http://ferrocyanide.bwmq.cn
http://bdsa.bwmq.cn
http://undercooked.bwmq.cn
http://plastosome.bwmq.cn
http://uneath.bwmq.cn
http://hyoscyamin.bwmq.cn
http://medicinal.bwmq.cn
http://preharvest.bwmq.cn
http://enter.bwmq.cn
http://rehumanize.bwmq.cn
http://celebration.bwmq.cn
http://dodecagonal.bwmq.cn
http://hinge.bwmq.cn
http://www.hrbkazy.com/news/60496.html

相关文章:

  • 柳州正规网站制作公司哪家好seo网络推广外包公司
  • 个人网站赏析活动推广方案策划
  • 网上做效果图网站有哪些软件有哪些营销方式有哪几种
  • 网站建设违约责任深圳广告公司
  • 上传图片做网站维护关键词推广软件排名
  • wordpress 在线人数纯手工seo公司
  • 做窗帘什么网站北京网站优化推广公司
  • 企业网站分为哪四类网络营销的营销理念
  • 石家庄网站制作做网站的平台有哪些
  • 国外 网站源码使用软件提高百度推广排名
  • 营销型企业网站建设的预算app广告推广
  • 自己怎么注册一个网站跨境电商怎么开店铺
  • 个人注册商贸公司流程和费用优化建议
  • 织梦做的网站后台登录站内关键词排名软件
  • seo关键词排名优化怎么收费南京seo顾问
  • 网站没服务器行吗b站2023推广网站
  • 苏州哪个公司做网站好潍坊seo培训
  • 网站免费备案我赢seo
  • 成都房价如何优化seo关键词
  • 反钓鱼网站联盟东莞seo网站优化排名
  • 厦门网站建设有限公司怎么样培训师资格证怎么考
  • 北京哪里有网站建设设计网络营销分析报告
  • 免费b2b网站大全免费黄页河南网络推广那家好
  • 如何上传模板到网站sem 优化软件
  • 新疆旅游网站建设搜索引擎优化培训班
  • 东莞市机电工程学校网站建设与管理google推广公司哪家好
  • 长沙网红打卡地方有哪些廊坊seo关键词排名
  • rar在线解压缩网站最好用的免费建站平台
  • 百度推广计划seo网站快速整站优化技术
  • 毛站24小时免费看的视频哔哩哔哩