专栏首页喵君手记关于浏览器环境JS单线程及小程序双线程架构的一点思考

关于浏览器环境JS单线程及小程序双线程架构的一点思考

想通了一件事情

# 前情提要

1.通过了解浏览器线程的一些知识我们知道浏览器进程中GUI线程是与JS引擎线程互斥的。 2.小程序的架构是JsCore执行js逻辑代码+webview页面渲染双线程,两个线程并不互斥。

# 那么问题来了

为什么浏览器中js代码会阻塞页面渲染而小程序环境里面JS却可以和页面渲染同时进行。 *GUI线程被设计成是和JS引擎线程互斥的(谷歌浏览器为例) *小程序逻辑层线程和webview渲染线程是可以同时执行的

# 原因

  • 浏览器环境

由于JavaScript是可操纵DOM的,如果在修改这些元素属性同时渲染界面(即JS线程和GUI线程同时运行),那么渲染线程前后获得的元素数据就可能不一致了

  • 小程序环境

小程序底层屏蔽了窗口对象(JsCore环境是没有窗口对象的),小程序里的JS代码是无法操作document对象的,也就无法改变dom树的结构,不会出现前后不一致的问题。

附: JsCore示意图

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • React-Native简介

    React-Native 基于目前React来开发IOS原生应用,Android版本将在年底推出。

    IMWeb前端团队
  • WebView开源库终极方案

    用户4302887
  • React Native 从诞生到现在

    感谢支持ayqy个人订阅号,每周义务推送1篇(only unique one)原创精品博文,话题包括但不限于前端、Node、Android、数学...

    ayqy贾杰
  • 移动端体验优化经验总结与实践

    很多企业都会特别注重自己产品的体验,尤其是移动端,那移动端的体验为什么这么重要?首先体验本身就很重要,好的体验带给用户的感受是截然不同的,用户选择使用一个产品除...

    ConardLi
  • vivo web service:亿万级规模web服务引擎架构

    vivo web service是开发团队围绕奇点内核打造出的基于vivo手机平台的web服务引擎,该服务引擎从浏览器产品线中经过多年迭代而出。除了提供可靠的基...

    2020labs小助手
  • 【适配】425- 彻底搞懂移动Web开发中的viewport与跨屏适配

    viewport是移动端跨屏适配的基石,吃透这一概念,任何复杂多变的适配需求,都可以手到擒来。

    pingan8787
  • 基于腾讯x5开源库,提高60%开发效率

    用户4302887
  • 欢乐送小程序自动化探索实践

    在私信聊天页,输入http://debugx5.qq.com,点击后跳转到x5调试页面,点击信息,然后勾选【打开TBS内核Inspector调试功能】。

    测试开发社区
  • 跨平台技术演进及Flutter未来

    移动互联网发展十余年,伴随着 Android、iOS 等智能手机的不断普及,移动端已逐步取代 PC 端,成为兵家必争之地。正所谓“得移动端者得天下”,移动端已成...

    程序亦非猿

扫码关注云+社区

领取腾讯云代金券