前言
作为一个传统出身的Android开发搬砖工程师,由于工作需要以及历史推进,最近一年的工作都在写小程序。作为习惯于总结经验的我来说,在研究官方文档之余还是觉得应该写写笔记,作为学习记录。所以接下来一段时间都会写写一些关键记录。
小程序与普通网页开发的区别
小程序的主要开发语言是 JavaScript
,小程序的开发同普通的网页开发相比有很大的相似性。对于前端开发者而言,从网页开发迁移到小程序的开发成本并不高,但是二者还是有些许区别的。
-
网页开发渲染线程和脚本线程是互斥
(没开发过网页,查了一下资料是说 GUI渲染线程 和 JS引擎线程,GUI渲染线程和JS引擎线程是互斥的,当js引擎执行时GUI线程会被挂起;如果JS执行时间如果过长,这样就会造成页面渲染不连贯,导致页面渲染加载阻塞),GUI更新会被保存在一个队列中等到js引擎空闲时立即执行)的,这也是为什么长时间的脚本运行可能会导致页面失去响应。
而在小程序中,二者是分开的,分别运行在不同的线程
中。 -
网页开发者
可以使用到各种浏览器暴露出来的DOM API
,进行 DOM 选中和操作。
小程序的逻辑层和渲染层是分开的,逻辑层运行在JSCore
中,并没有一个完整浏览器对象
,因而缺少相关的DOM API和BOM API。这一区别导致了前端开发非常熟悉的一些库,例如 jQuery、 Zepto 等,在小程序中是无法运行的。同时 JSCore 的环境同 NodeJS 环境也是不尽相同,所以一些 NPM 的包在小程序中也是无法运行的。 -
网页开发者需要面对的环境是各式各样的浏览器,PC 端需要面对 IE、Chrome、QQ浏览器等,在移动端需要面对Safari、Chrome以及 iOS、Android 系统中的各式 WebView 。而小程序开发过程中需要面对的是两大操作系统 iOS 和 Android 的
微信客户端
,以及用于辅助开发的小程序开发者工具,小程序中三大运行环境也是有所区别的
-
网页开发者在开发网页的时候,只需要使用到浏览器,并且搭配上一些辅助工具或者编辑器即可。小程序的开发则有所不同,需要经过
申请小程序帐号
、安装小程序开发者工具
、配置项目
等等过程方可完成。