webwork的定义

webwork为单页面使用多线程,不影响页面的渲染,充分补全的js单线程阻塞页面渲染的缺点,项目中使用还是很受欢迎的

webwork的封装

webwork在单页面中使用会遇到打包找不到webwork.js文件的提示,此时需要安装worker-loader插件,配置config, 而webwork的封装避免了在项目线上打包需要安装worker-loader问题,单独使用一个js文件,下面会说怎么使用
vue和react使用类似,此处以vue为例

export default class WebWorker {constructor(worker) {const code = worker.toString()const blob = new Blob(['(' + code + ')()'])return new Worker(URL.createObjectURL(blob))}
}

组件内使用

请求到数据后正常赋值,渲染页面,在最后运行webwork另起线程

组件内使用

1,请求数据的方法

getData() {let params = {}this.request(params).then(res => {this.form = Object.assign({}, res.data)this.logLines = getLines(this.form.log.segment1) // 根据换行符把内容切割成数组this.form.log = this.logLines.splice(-LOG_PAGE_SIZE, LOG_PAGE_SIZE).join('\n')this.cmOption.firstLineNumber = Math.max(this.logLines.length + 1, 1)this.$nextTick(() => {const Dom = this.$refs.codemirror.codemirrorDom.scrollIntoView({line: Dom.lineCount() - 1,ch: 0})})this.runWebWork(res.data)})},

2,new一个实例

 // 另起webwork线程runWebWork(data) {let workFunction = function() {this.onmessage = e => {let arr = e.data.split(/\r\n|[\r\n]/)postMessage(arr)}}if (work) {work.terminate()}console.time()work = new WebWorker(workFunction)// 发送消息work.postMessage(data.log.segment2)// 接收消息work.onmessage = e => {console.log('webwork执行完成')this.logLines = [...e.data, ...this.logLines]// Worker 线程work = nullconsole.timeEnd()}// 监听清除workthis.$once('hook:beforeDestroy', () =>{work.terminate()work = null})}

这样一个简单的webwork就ok了

单页面vue使用webwork相关推荐

  1. 如何单页面Vue应用转化成多页面的Vue应用

    准备工作 在本地用vue-cli新建一个项目,这个步骤vue的官网上有,我就不再说了. 这里有一个地方需要改一下,在执行npm install命令之前,在package.json里添加一个依赖,后面会 ...

  2. php+Vue单页面学生管理系统

    Php学生管理系统 引言:学生实训,老师要求用php代码写学生管理系统作为实训内容.之前作业都是拜托同学交,此次作业是自由发挥的,故从星期天学习Php的基本语法.如字符串拼接,function的写法, ...

  3. [项目实战] 使用Idea构建单页面Vue3项目(不使用node、npm)

    前言 某天张三对小花说,我需要在一台新电脑上实现一个前端的漂亮页面:比如京东手机首页(m.jd.com). 小花这时吭哧吭哧的去新电脑上安装nodejs.npm,然后在本地使用npm构建vue3项目, ...

  4. app怎么嵌套vue页面_app内嵌vue单页面应用的一些坑

    写这篇文章的原因是想总结一下自己最近开发的一个内嵌app的vue单页面项目,看看有哪些坑!!! 1.白屏 项目第一次上线正常 项目第二次上线,20多个用户反馈白屏(没见过这世面,心里慌的不行!!!), ...

  5. Nginx 解决WebApi跨域二次请求以及Vue单页面问题

    Nginx 解决WebApi跨域二次请求以及Vue单页面问题 参考文章: (1)Nginx 解决WebApi跨域二次请求以及Vue单页面问题 (2)https://www.cnblogs.com/ji ...

  6. nginx配置解决vue单页面打包文件大,首次加载慢的问题

    nginx配置解决vue单页面打包文件大,首次加载慢的问题 参考文章: (1)nginx配置解决vue单页面打包文件大,首次加载慢的问题 (2)https://www.cnblogs.com/golo ...

  7. nignx部署Vue单页面刷新路由404问题解决

    nignx部署Vue单页面刷新路由404问题解决 参考文章: (1)nignx部署Vue单页面刷新路由404问题解决 (2)https://www.cnblogs.com/wuchenggong/p/ ...

  8. 怎样在vue单页面中引入其他组件

    场景 在一个vue的单页面,假如是home.vue中要引入其他组件的内容. 页面结构如下: 实现 首先在components下新建组件Today_recommend.vue组件 <templat ...

  9. Vue单页面在ios10系统上出现白屏的bug

    一个bug 你用Vue做了一个单页面应用,它在一切设备上都工作正常,但是突然有一天,你的测试和你说,这个网站在iOS 10上跑不起来,怎么办?于是你打开你电脑上的Chrome浏览器,工作正常:打开Sa ...

最新文章

  1. IT工作十年总结之3个图表与统计查询对象
  2. Android 音视频深入 十四 FFmpeg与OpenSL ES 播放mp3音乐,能暂停(附源码
  3. android6.0系统Healthd深入分析
  4. Python Excel操作人口普查
  5. 解锁Insyde的BIOS隐藏设置
  6. 数字图像字符识别——数字识别
  7. 程序员转行做什么工作比较好?
  8. css背景图片高斯模糊_CSS3 filter(滤镜) 制作图片高斯模糊无需JS
  9. 项目源代码迁移到另一个gitlab的方法(保留原来的提交记录)
  10. 乓乓响再次冲刺香港上市,黄建义、张卫平夫妇套现约2130万元
  11. NOIP 2015 简记
  12. 缺陷定位之路在何方?论文阅读:Revisiting the practical use of automated software fault localization techniques
  13. 经典不等式链的一些拓展理解
  14. tensorflow--tf实现矩阵乘法和加法
  15. 查找替换之 换行符替换
  16. 二分类最优阈值确定_一文搞懂分类算法中常用的评估指标
  17. 如何通过脚本开发Android
  18. VBA-使用msgbox对话框
  19. 《朱元璋为何隐瞒自己的民族成份》
  20. 计算机科学与技术密码学是啥意思,密码学是什么意思

热门文章

  1. 用WebStorm搭建vue项目
  2. 3D MAX中的Vray5 LightMix设置指南。
  3. 盘点IBM四次拆分:越来越“软”的蓝色巨人
  4. 随着餐饮、酒店、医院、学校等行业的发展,商用台下洗碗机的市场需求将会不断增加...
  5. IDEA 注释及代码格式
  6. 经典冷笑话(从一个小女孩的博客里偷来的,汗!有点不好意思)
  7. ipoo3可以用鸿蒙,iQOO Neo3用实力来告诉我们,什么是强悍芯生生而为赢
  8. PictrueBox过滤器
  9. intel i5 CPU和i7 cpu有什么不同之处 购买的时候应该怎么选择
  10. TBW102主题的作用