收藏
回答

我不理解这句话的意思。

​网页开发渲染线程和脚本线程是互斥的,这也是为什么长时间的脚本运行可能会导致页面失去响应,而在小程序中,二者是分开的,分别运行在不同的线程中。



回答关注问题邀请回答
收藏

2 个回答

  • CRMEB
    CRMEB
    星期一 11:56

    咱们可以把网页和小程序想象成两个不同的小工厂,渲染线程和脚本线程就是工厂里干活的工人,下面给你讲讲它们在网页和小程序这两个 “工厂” 里的工作模式区别。

    网页开发:两个工人轮流干活

    在网页这个 “小工厂” 里,有两个关键的工人,一个专门负责把产品(也就是网页)打扮得漂漂亮亮,布置好各种细节,这个工人就是渲染线程;另一个工人负责处理一些杂七杂八但很重要的事情,比如和外界沟通、接收订单指令等,这个工人就是脚本线程。

    但是呢,这个 “小工厂” 有个规定,同一时间只能有一个工人干活。也就是说,当负责杂事的脚本线程在处理大量复杂的订单指令,忙得不可开交,花了很长时间都没做完的时候,负责打扮产品的渲染线程就只能干等着。这就导致产品没办法及时变漂亮展示给客户,客户就会觉得这个 “工厂” 的产品好像卡住不动了,没什么反应,也就是页面失去响应啦。

    比如说,脚本线程接了个特别难的订单,要做大量的数学计算来确定产品的规格,算起来没完没了,那渲染线程就只能闲着,页面就没办法更新,按钮点了没反应,画面也不滚动,就好像卡住了一样。

    小程序:两个工人各干各的活

    而在小程序这个 “小工厂” 里,规则就不一样了。这里给两个工人分别安排了不同的工作区域,让他们可以同时干活,互不干扰。渲染线程在自己的区域里专心把产品打扮得美美的,脚本线程在另一个区域处理各种杂事。

    就算脚本线程遇到了特别难搞的订单,要花很长时间去处理,也不会影响渲染线程继续工作。渲染线程还是能按照自己的节奏把产品装饰好,及时展示给客户。所以客户在小程序里就不会遇到页面卡住没反应的情况,能更流畅地和产品互动,感觉体验就好多啦。

    总的来说,网页开发里两个线程得轮流工作,容易因为一个线程工作时间长导致页面出问题;而小程序里两个线程能同时工作,避免了这种问题,让页面使用起来更顺畅。


    星期一 11:56
    有用
    回复
  • sun
    sun
    星期一 11:39

    没有写过网页吗?在网页中,js线程阻塞会导致界面卡住主界面的渲染。

    小程序的话,js线程和渲染线程是分开的。js阻塞不会导致渲染界面卡住。

    星期一 11:39
    有用
    回复
登录 后发表内容