前言
作爲一個傳統出身的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 的
微信客戶端
,以及用於輔助開發的小程序開發者工具,小程序中三大運行環境也是有所區別的
-
網頁開發者在開發網頁的時候,只需要使用到瀏覽器,並且搭配上一些輔助工具或者編輯器即可。小程序的開發則有所不同,需要經過
申請小程序帳號
、安裝小程序開發者工具
、配置項目
等等過程方可完成。