解析小程式雙執行緒技術,助力移動應用體驗提升
如今我們每個人都是小程式的使用者,小到日常的健康碼,大到各種政務事項辦理。究其因,對於使用者來講小程式無需下載,用完即走而且其具備輕量、流暢的使用體驗;對於開發者來講便捷簡單的開發流程,學習的門檻極低,這也是小程式能夠逐步受到廣大使用者和開發者的認可和歡迎的原因。
與H5技術相比,為什麼小程式能夠支援起足夠優秀的效能呢?其背後的技術邏輯是什麼?
小程式特殊的雙執行緒架構
我們都知道,傳統 Web 的架構模型是單執行緒架構,其渲染執行緒和指令碼執行緒是互斥的,這也就是說為什麼長時間的指令碼執行可能會使頁面失去響。
而小程式能夠具備更卓越使用者體驗的關鍵在於起架構模型有別於傳統 Web,小程式為雙執行緒架構,其渲染執行緒和指令碼執行緒是分開執行的。渲染層的介面使用了 WebView 進行渲染,邏輯層採用 JsCore 執行緒執行 JS 指令碼。
邏輯層:建立一個單獨的執行緒去執行 JavaScript,在這個環境下執行的都是有關小程式業務邏輯的程式碼,只能夠執行 JavaScript 的沙箱環境,不提供 DOM 操作相關的 API,所以不能直接操作 UI,只能夠透過 setData更新資料的方式非同步更新 UI 。
渲染層:介面渲染相關的任務全都在 WebView 執行緒裡執行,透過邏輯層程式碼去控制渲染哪些介面。一個小程式存在多個介面,所以渲染層存在多個 WebView 執行緒。
雙執行緒具備的優勢
1、對效能具有明顯的提升
回想一下,在我們進行 Web 開發的時候,渲染程式和邏輯進行是互斥的,這是為了防止在渲染過程中,我們使用js 對 dom 進行操作,造成頁面紊亂甚至崩潰。現在我們使用雙執行緒來進行管理小程式,就不存在 js 堵塞渲染的問題,雙執行緒同時執行,提升效能。
2、使用者隱私資料安全管控能力提升
我們都知道基於 Web 技術來渲染小程式,是存在一些不可控因素和安全風險的。因為 Web 技術非常靈活開放,我們可以使用 Javascript 去任意地控制頁面的跳轉或者改變頁面上的任何內容,Javascript 還可以透過操作 DOM,直接獲取小程式內部的一些敏感資料,比如使用者資訊等等,那麼小程式將毫無安全可言。
雙執行緒架構下,不允許開發者隨意操作 BOM 和 DOM,這對使用者的隱私資料具有一定的保護作用,安全水平進一步提升。
如何在移動研發中發揮小程式雙執行緒的價值
時至今日,移動研發中越來越多產品格外重視使用者體驗的大背景下,小程式也成為重要業務承載利器。除了在微信、支付寶等平臺上架我們自有開發的小程式外,「原生+小程式」的開發模式也成為移動研發的另一選擇。可以讓自身的 App 像微信、支付寶一樣執行自有的小程式。
小程式容器技術能夠幫助企業或個人開發者讓自有的 App 具備小程式執行能力,只需要透過整合 FinClip SDK 即能快速具備小程式能力。
而且 FinClip SDK 極其輕量,應用在整合後SDK的體積僅僅增大了不到 3MB。同時, FinClip 支援微信小程式語法 WXML,也就是說微信小程式程式碼可以直接在 FinClip中複用,無需再二次開發,體驗與微信端保持一致。
我們一直在關注移動應用研發效率提升的同時,使用者對於應用的使用體驗關注度越來越高,如何做好應用的體驗也值得開發者重視。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70023421/viewspace-2923362/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 助力提升移動研發效率的小程式容器技術,你瞭解嗎?
- 小程式技術能否成為移動應用市場新機遇?
- 理解微信小程式的雙執行緒模型微信小程式執行緒模型
- 提升 Hybrid 體驗:餓了麼雙十一 PHA 框架技術實踐框架
- 多執行緒應用執行緒
- 執行緒剖析 - 助力定位程式碼層面高耗時問題|得物技術執行緒
- 冷門前端知識,介紹雙執行緒的小程式!前端執行緒
- 程式執行緒篇——總結與提升執行緒
- 多執行緒核心技術(1)-執行緒的基本方法執行緒
- 執行緒建立的函式及應用小結執行緒函式
- PyQt應用程式中的多執行緒:使用Qt還是Python執行緒?QT執行緒Python
- 編寫執行緒安全的JSP應用程式執行緒JS
- 【併發技術01】傳統執行緒技術中建立執行緒的兩種方式執行緒
- QEMU-KVM中的多執行緒壓縮遷移技術執行緒
- Opensignal:移動語音應用體驗報告
- 物聯網技術對移動應用程式開發的影響
- java核心技術筆記--執行緒Java筆記執行緒
- 保證執行緒安全的技術執行緒
- 小程式技術科普:執行機制&安全機制
- 小程式助力提升運維效率運維
- 多執行緒------執行緒與程式/執行緒排程/建立執行緒執行緒
- 《Java 多執行緒程式設計核心技術》筆記——第3章 執行緒間通訊(三)Java執行緒程式設計筆記
- 《Java 多執行緒程式設計核心技術》筆記——第3章 執行緒間通訊(四)Java執行緒程式設計筆記
- 【併發技術04】執行緒技術之死鎖問題執行緒
- 【併發技術03】傳統執行緒互斥技術—synchronized執行緒synchronized
- 網際網路進入存量博弈時代,小程式技術創造移動應用新機遇
- 程式執行緒篇——程式執行緒基礎執行緒
- Linux應用程式獲取執行緒棧的資訊Linux執行緒
- 遷移執行緒migration執行緒
- pytest(13)-多執行緒、多程式執行用例執行緒
- java 21 虛擬執行緒初體驗Java執行緒
- 執行緒的基本解析執行緒
- ObjC 多執行緒簡析(一)-多執行緒簡述和執行緒鎖的基本應用OBJ執行緒
- 雙執行緒架構:小程式相比於H5的架構優勢執行緒架構H5
- 微信小程式的執行緒架構微信小程式執行緒架構
- 程式-程式-執行緒執行緒
- 使用小程式助力提升運維效率!運維
- 一執行緒序員忙著學習技術,二執行緒序員忙著技術變現,你呢?執行緒