webworker和ajax,webWorker

本篇文章仅供我自己学习使用,不建议从这篇文章中学习。因为文章中可能有错误。

传统的js都是单线程,webworker的引入就是为了解决js只有单线程的问题。在进行科学计算,密集型计算的时候webworker不会阻塞页面,这样对用户体验会有很好的提升。

但是webWorker和传统语言的多线程还不一样,webworker里面的内容和主线程内容只能通过onmessage和postmessage进行通信,不能共享变量,所以不需要像其他语言那样在进行多线程的时候加锁开锁。webWorker的多线程更像是在本地浏览器内开了一个微型服务器,微型服务器进行一些复杂的计算,和主线程进行通信。

同源限制

分配给 Worker 线程运行的脚本文件,必须与主线程的脚本文件同源。

dom限制

worker内的全局对象与主线程不已昂,无法使用document、window这些对象。但是,worker线程可以使用navigator对象和location对象。(navigator对象包含所有的浏览器信息。)。(Location 对象包含有关当前 URL 的信息。)

通信联系

worker线程和主线程不在同一个上下文环境,不能直接通信,需要通过消息。

脚本限制

worker线程不能使用alert()方法和confirm方法,但是可以使用XMLHttpRequest 对象发送ajax请求。试验了,确实可以发送ajax请求。

文件限制

worker线程无法读取本地文件,即不能打开本机的文件系统(file://)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值