各位听众,欢迎来到今天的“线程共享,快乐编程”讲座! 咳咳,今天咱们聊点刺激的——SharedWorker。 各位都知道,Web Worker 就像一个勤劳的小弟,帮你分担主线程的计算压力,让页面不再卡顿。但是,如果你想让多个标签页共享同一个小弟,一起干活,那普通的 Web Worker 就歇菜了。 这时候,SharedWorker 就该闪亮登场了! 一、SharedWorker:共享的苦力,快乐的通信 简单来说,SharedWorker 就是一个可以被多个浏览上下文(例如,多个标签页、iframe)共享的 Web Worker。 就像一个公共的线程池,大家可以往里面扔任务,然后共享结果。 那么,它和普通 Web Worker 有什么不同呢? 特性 Web Worker SharedWorker 共享范围 只能被创建它的页面使用 可以被同源的多个页面共享 通信方式 直接通过 postMessage 通信 需要通过 port 对象进行通信,建立连接后才能通信 生命周期 页面关闭后,Worker 也会关闭 只要有任何一个页面连接着,Worker 就不会关闭 创建方式 new Worker( …
继续阅读“JavaScript内核与高级编程之:`JavaScript`的`SharedWorker`:其在多个标签页间共享线程的通信机制。”