B站传送门www.bilibili.com
不愿看视频的可以看下面的视频文字稿
不知道你有没有发现这样一个现象,当年用QQ的人越来越多的转战到了微信。当时那群留着爆炸头用着£吙星妏☆★的孩子把自己非主流的时期统统锁进QQ里然后…扔掉。而同时有许多的软件平台也纷纷在微信上推出自己的小程序产品。但是,小程序究竟是怎么运行的,它和当今的互联网技术栈又有什么区别?
小程序的运行机理
现在网上已经有很多具体的原理分析文章,在这里我们简单的说一下它的运行机理。伟大的微机课老师告诉过我们:在浏览器中代码与渲染虽然是两个不同的线程,但两者的运行是互斥的。因此在浏览器环境中,如果我们有一个非常耗时的代码在运行,这个时候浏览器就会看起来是卡死的状态。
小程序为了保证用户的浏览体验不受代码运行的影响,将其分离为完全独立的两个线程,由微信作为背后的系统层提供数据的传输以及一些系统能力的支持。这样做除了用户体验之外还有另外一个好处,就是被广大开发者吐槽的浏览器能力阉割。(被大家都吐槽的还叫好处吗?)其实这是为了安全性考虑的,如果支持任意代码执行,微信的各种非公开接口就可能以各种花里胡哨的方式被人使用,那么就有可能你刚打开这个小程序,你的好友就同时收到一些五颜六色五花八门五光十色五彩斑斓五湖四海无法无天不知火舞的广告。哦,这该死的营销。
小程序和互联网技术栈的区别
简单的说了一下运行机理,相信大家都会有这样一个疑问,这个小程序的代码看起来是网页,用起来像网页,他为啥就和网页不一样呢?那么让我们去看一看微信到底是如何处理这些代码的,小程序的渲染真的是推出时宣传的那样利用原生能力进行性能提升的吗?
要想知道这些信息,