深入分析 小程序與H5的區(qū)別

面議元2023-06-14 03:18:14
  • 杜云龍
  • 查看聯(lián)系方式
  • 免費(fèi)咨詢

杜云龍

注冊時(shí)間:2023-06-14

————認(rèn)證資質(zhì)————

  • 個(gè)人未認(rèn)證
  • 企業(yè)未認(rèn)證
  • 微信未認(rèn)證
  • 手機(jī)已認(rèn)證

線上溝通

與商家溝通核實(shí)商家資質(zhì)

線下服務(wù)

核實(shí)商家身份所有交流確保留有證據(jù)

服務(wù)售后

有保障期的服務(wù)請與商家確定保障實(shí)效

服務(wù) 網(wǎng)站建設(shè) 網(wǎng)站推廣  詳細(xì)地址 燕郊維多利亞D座2007
QQ號(hào) 2492078369  

深入分析 小程序與H5的區(qū)別

做小程序選擇惠商


作為前端工程師,從前端的視角,為大家分析下小程序和HTML5與之間的主要區(qū)別


第一條是運(yùn)行環(huán)境的不同。


傳統(tǒng)的HTML5的運(yùn)行環(huán)境是瀏覽器,包括而小程序的運(yùn)行環(huán)境并非完整的瀏覽器,大家注意,我這里寫的是“非完整的瀏覽器”,有以下幾個(gè)原因


小程序的開發(fā)過程中會(huì)用到HTML5相關(guān)的技術(shù)(并非全部)


小程序后的發(fā)布上線需要審核,在不更新自身軟件的情況下可以將小程序更新到自身軟件內(nèi),這就聯(lián)想到了React Native框架,并且已經(jīng)有開發(fā)者在小程序的開發(fā)工具源碼中發(fā)現(xiàn)使用了React和庫


文檔中著重強(qiáng)調(diào)了腳本內(nèi)是無法使用瀏覽器中常用的window對象和document對象(基于這一點(diǎn),像這種操作dom的庫就被完全拋棄了)


所以我個(gè)人認(rèn)為,小程序的運(yùn)行環(huán)境很有可能是開發(fā)隊(duì)伍基于瀏覽器內(nèi)核完全重構(gòu)的一個(gè)內(nèi)置解析器,針對小程序?qū)iT做了優(yōu)化,配合自己定義的開發(fā)語言標(biāo)準(zhǔn),提升了小程序的性能。


不過由于給開發(fā)者提供了開發(fā)工具,而開發(fā)工具中也內(nèi)置了編程、調(diào)試、開發(fā)環(huán)境、發(fā)布于一身,我們也不用再探討它的終運(yùn)行環(huán)境了,只要按照文檔進(jìn)行開發(fā)就可以了。并且從隊(duì)伍給開發(fā)者提供開發(fā)工具這一舉動(dòng),讓我聯(lián)想到了蘋果給開發(fā)者提供的X-CODE開發(fā)工具,可以想象的“野心”可見一斑


第二條是開發(fā)成本的不同。


這里我提出了一個(gè)問題,當(dāng)我們面對一個(gè)HTML5 web開發(fā)需求時(shí),我們需要考慮什么呢?拋去開發(fā)工具(vscode、sublimtext、Atom等)不談,大到前端框架(Angular、react、vue、backbone等)、模塊管理工具(Webpack 、Browserify 等)、任務(wù)管理工具(Grunt、Gulp等),小到UI庫選擇、接口調(diào)用工具(ajax、Fetch Api等)、瀏覽器兼容性等都要我們一一考略,再不濟(jì)用jqery插件寫H5,也要在開發(fā)過程中去尋找合適的jquery插件來配合項(xiàng)目。盡管這些工具可定制化非常高,并且提高了開發(fā)者的開發(fā)效率,但我相信項(xiàng)目開發(fā)的配置工作已經(jīng)消耗了不少精力,盡管大部分開發(fā)者都有自己的配置模板,但長久以來對于項(xiàng)目中使用的各種外部庫的版本迭代、版本升級(jí)所產(chǎn)生的成本應(yīng)該也不低。


而當(dāng)我們面對一個(gè)小程序的開發(fā)需求時(shí),我們需要考慮什么呢?隊(duì)伍提供了開發(fā)者工具,并且規(guī)范了開發(fā)標(biāo)準(zhǔn),前端常見的HTML、CSS變成了自定義的中盡管全部是自定義標(biāo)簽,但文檔中都有明確的使用介紹,相信上手應(yīng)該是非常容易的;WXSS、JSON和JS文件中的寫法稍有限制,但整體相差不多。在統(tǒng)一了這些標(biāo)準(zhǔn)之后,作為一個(gè)開發(fā)者,你會(huì)發(fā)現(xiàn),自己只要專注寫程序就可以了:


當(dāng)需要調(diào)用后端接口時(shí),調(diào)用發(fā)起請求API


當(dāng)需要上傳時(shí),調(diào)用上傳API


當(dāng)需要數(shù)據(jù)緩存時(shí),調(diào)用本地存儲(chǔ)API


引入地圖、使用羅盤、調(diào)用支付、調(diào)用等等功能都可以直接使用


UI庫方面,框架自然帶有自家weui庫加成


并且在使用這些API時(shí),你不用再去顧慮瀏覽器兼容性,不用擔(dān)心生產(chǎn)環(huán)境中出現(xiàn)不可預(yù)料的奇妙BUG,可見小程序的開發(fā)成本確實(shí)相比以往的web開發(fā)低很多。


第三條是獲取系統(tǒng)級(jí)權(quán)限的不同。


小程序相對于HTML5 web應(yīng)用能獲得更多的系統(tǒng)權(quán)限,比如網(wǎng)絡(luò)通信狀態(tài)、數(shù)據(jù)緩存能力等,這些系統(tǒng)級(jí)權(quán)限都可以和小程序無縫銜接,也就是宣稱的擁有Native App的流暢性能,而這一點(diǎn)恰巧是HTML5 web應(yīng)用經(jīng)常被詬病的地方,這也是HTML5的大多應(yīng)用場景被定位在業(yè)務(wù)邏輯簡單、功能單一的原因。


第四條便是應(yīng)用在生產(chǎn)環(huán)境的運(yùn)行流暢度。


這條無論對于用戶還是開發(fā)者來說,都是直觀的感受。長久以來,當(dāng)HTML5應(yīng)用面對復(fù)雜的業(yè)務(wù)邏輯或者豐富的頁面交互時(shí),它的體驗(yàn)總是不盡人意,需要不斷的對項(xiàng)目優(yōu)化來提升用戶體驗(yàn)。但是由于小程序運(yùn)行環(huán)境獨(dú)立,盡管同樣用html+css+js去開發(fā),但配合的解析器終渲染出來的是原生組件的效果,自然體驗(yàn)上將會(huì)更進(jìn)一步。

展開更多
排行8提醒您:
1)為了您的資金安全,請選擇見面交易,任何要求預(yù)付定金、匯款等方式均存在風(fēng)險(xiǎn),謹(jǐn)防上當(dāng)受騙!
2)確認(rèn)收貨前請仔細(xì)核驗(yàn)產(chǎn)品質(zhì)量,避免出現(xiàn)以次充好的情況。
3)該信息由排行8用戶自行發(fā)布,其真實(shí)性及合法性由發(fā)布人負(fù)責(zé),排行8僅引用以供用戶參考,詳情請閱讀排行8免責(zé)條款。查看詳情>
免費(fèi)留言
  • !請輸入留言內(nèi)容

  • 看不清?點(diǎn)擊更換

    !請輸入您的手機(jī)號(hào)

    !請輸入驗(yàn)證碼

    !請輸入手機(jī)動(dòng)態(tài)碼

杜云龍
×
發(fā)送即代表同意《隱私協(xié)議》允許更多優(yōu)質(zhì)供應(yīng)商為您服務(wù)