亚洲欧美黑人深猛交群,国产一级a毛一级a看免费视频,日韩电影在线观看免费观看完整版,91久久国产成人免费观看资源

有了微信公眾號為什么還要做微信小程序呢?

善微科技 2017 08月16日 發(fā)布

有人說小程序是原生應(yīng)用,不知道是現(xiàn)在什么立場這樣說的,微信內(nèi)嵌web view 控件,本質(zhì)上就是一個(gè)定制化的web瀏覽器,與普通瀏覽器相比只是增加了一些豐富的內(nèi)部交互,比如可以輕松用戶信息等等,雖然站在前端的角度,小程序和H5應(yīng)用有一點(diǎn)區(qū)別,但是虛擬機(jī)永遠(yuǎn)是虛擬機(jī),跟原生永遠(yuǎn)差了一個(gè)解釋執(zhí)行的鴻溝。還提到了自更新,只要你是基于HTTP協(xié)議的那就是古老的HTTP REQUEST 和 RESPONSE方式,沒有什么值得吹捧的。如果答主稍微對Native了解深一點(diǎn),可能就會(huì)拿application stream來說了,這才是目前解決Native程序分發(fā)方式的一大方向,ctrix 有application 虛擬化,Google有dynamrio,微軟有drawbridge,這些技術(shù)含量可比react或者codepush技術(shù)含量高多了。一個(gè)是接近OS級別的革新,一個(gè)是虛擬機(jī)里面的優(yōu)化,層次高低,技術(shù)深度不言自明。虛擬機(jī)永遠(yuǎn)是虛擬機(jī),玩不出花來。不過如今的CPU架構(gòu)也是發(fā)展了幾十年而沒有大的改變,這也制約了native程序的基本運(yùn)行原理。-----------------技術(shù)上沒什么區(qū)別,但是在意義上小程序是騰訊實(shí)現(xiàn)“成為互聯(lián)網(wǎng)的水和電”這一企業(yè)愿景的堅(jiān)實(shí)而正確的一步。很普通的技術(shù),但是放到騰訊的平臺(tái)中,都可以因?yàn)榱孔円鹳|(zhì)變。比如公眾號,其實(shí)就是增加了主動(dòng)Push的RSS訂閱一樣的技術(shù)。應(yīng)該沒有什么下載不下載,最多是給你在手機(jī)桌面添加一個(gè)自定義scheme的hyper link的快捷方式,打開以后也是直接切換到微信內(nèi)置的Webview控件。


 

首先明確幾個(gè)概念:

Runtime,運(yùn)行時(shí)環(huán)境。

所謂 runtime 就是能夠運(yùn)行我們寫的代碼的代碼。說來很繞,理解起來很簡單——我們寫的代碼是要運(yùn)行在一個(gè)特定的環(huán)境中的,這個(gè)環(huán)境負(fù)責(zé)具體執(zhí)行代碼所表示的指令,也就是說代碼最終能有什么樣的能力、能實(shí)現(xiàn)什么樣的效果,不取決于怎么寫,而取決于 runtime 怎么理解和執(zhí)行。

比如,你用 console.log('Hello World'); 想在控制臺(tái)里輸出「Hello World」,如果 runtime 就是要把「Hello World」轉(zhuǎn)換成「Vote for Trump」你也沒有任何辦法。HTML,特指符合 W3C HTML Specification 的標(biāo)記語言,包括 4.01、5、5.1 等等眾多版本。并不是用「< 」和「>」符號包起來的就都叫 HTML,比如 <吃飯></吃飯>。CSS,特指符合 W3C Cascading Style Sheets Specification 的樣式描述語言,包括 Level 1、2、3、4 等眾多版本。網(wǎng)頁技術(shù)、web 技術(shù)——隨便怎么叫,特指用 JavaScript、HTML、CSS 幾種技術(shù)構(gòu)建應(yīng)用,最終運(yùn)行在「瀏覽器」這個(gè)特定 runtime 中的技術(shù)。瀏覽器(中的 JavaScript 引擎)和 Node.js(中的 JavaScript 引擎) 都只是 runtime 的一種——它們決定了我們的 JavaScript 代碼能做什么,有什么樣的能力供我們使用。window.alert('Hello World') 就只有瀏覽器能理解,同樣 require('fs').readFile('/'); 也只有 Node.js 能明白是什么意思。微信小程序是眾多實(shí)現(xiàn)了 JavaScript(MAYA、3DS MAX、Nginx 以及某些游戲引擎也有) runtime 的環(huán)境中的一種。瀏覽器作為一個(gè) runtime 的另一個(gè)重要特點(diǎn)是有 UI 繪制和用戶交互行為的捕獲能力——(曾經(jīng))只有瀏覽器能識(shí)別用 HTML 和 CSS 描述的 UI 結(jié)構(gòu)和樣式,并捕獲用戶的輸入傳遞給 JavaScript 進(jìn)行相應(yīng)的處理。小程序也有 UI 繪制和用戶交互行為的捕獲能力,但嚴(yán)格來講,它并不能識(shí)別 HTML 和 CSS,對應(yīng)的,它使用 WXML 和 WXSS 兩種標(biāo)準(zhǔn)來解釋標(biāo)記語言和樣式描述,而標(biāo)準(zhǔn)由微信小程序自己制定。HTML 和 WXML 有交集、CSS 和 WXSS 有交集,但他們是不同的。Runtime 能理解我們寫的標(biāo)記語言、樣式描述和業(yè)務(wù)代碼了,接下來需要去執(zhí)行它們。而問題里提到的當(dāng)年 Facebook 的客戶端,使用的是 Hybrid 解決方案——就是在平臺(tái)原生應(yīng)用的外殼里嵌入一個(gè) webview,它能提供基于 HTML、CSS 和 JavaScript 這些技術(shù)構(gòu)建的應(yīng)用所需的 runtime,因?yàn)樗鋵?shí)就是一個(gè)閹割的瀏覽器,不提供前進(jìn)后退按鈕、書簽管理等等,只提供運(yùn)行環(huán)境和繪制 UI 的能力。Hybrid 解決方案繼承了所有 web 技術(shù)的優(yōu)點(diǎn)——跨平臺(tái)、易維護(hù)、易部署和開發(fā)成本低等,同時(shí)也繼承了所有缺點(diǎn),而其中最為人詬病的缺點(diǎn)就是——安裝包體積大(由于兼容性問題,很多應(yīng)用不想使用用戶設(shè)備自帶的瀏覽器環(huán)境,而選擇打包一個(gè)瀏覽器核心在自己安裝包里),以及 UI 繪制效率低。嚴(yán)格來講,所有最終放棄 Hybrid 解決方案的公司,都不是由于過分相信 HTML 5 和 JavaScript,而是對移動(dòng)設(shè)備上的瀏覽器的核心部分(webview)的性能,特別是 UI 繪制性能,過分樂觀了。時(shí)間推移到 2015 年前后,開始出現(xiàn)了以 ReactNative 和 Weex 等技術(shù)方案為代表的新型技術(shù)解決方案,而小程序單純從技術(shù)實(shí)現(xiàn)角度來講,同這些技術(shù)方案差異不大——提供 JavaScript 的 runtime,用某種同 HTML 相似的結(jié)構(gòu)化標(biāo)簽語言來描述 UI 結(jié)構(gòu),用某種類似 CSS 的語言來描述 UI 樣式,然后將這些代碼直接繪制為原生 UI。這個(gè)過程中已經(jīng)沒有 webview 什么事情了,所以微信小程序并不是我們平時(shí)所說的 web 技術(shù),他們只是使用一樣或類似的語言而已(總不能說在 MAYA 里寫 JavaScript 腳本也叫 web 開發(fā)吧?)。客戶端開發(fā)的核心是通過 runtime 來調(diào)度和控制 runtime 之下的平臺(tái)能力,瀏覽器這個(gè) runtime 下面的平臺(tái)是操作系統(tǒng)(Windows、macOS、iOS、Android、*nix 等),而小程序這個(gè) runtime 下面的平臺(tái)是微信,這是二者的本質(zhì)區(qū)別。再說下載。以前,網(wǎng)頁的所有內(nèi)容必須要先下載再執(zhí)行,而近些年瀏覽器提供了離線緩存的相關(guān)功能,讓網(wǎng)頁應(yīng)用的非數(shù)據(jù)部分可以離線使用,但這樣會(huì)把問題復(fù)雜度直接拉成指數(shù)級提升——以前默認(rèn)所有東西都要連網(wǎng)才能使用,現(xiàn)在要區(qū)分哪些可以連、哪些必須連、連上怎么處理、連不上怎么處理、要緩存的話緩存策略怎么設(shè)置,產(chǎn)品和技術(shù)上面臨的問題都太多,收益也未必有多大,如果離線使用是剛需還不如索性直接做 app,所以瀏覽器內(nèi)的離線應(yīng)用發(fā)展一直不溫不火,但如果你真心想做,還是可以實(shí)現(xiàn)首次下載后再次使用速度得到質(zhì)的提升的。所以問題描述的慢,下載慢并不是癥結(jié),UI 繪制慢、交互響應(yīng)慢(得益于 JavaScript 引擎本身的性能提升,連 JavaScript 執(zhí)行都不是瓶頸了,但占用 UI 線程導(dǎo)致整體卡頓是另外一個(gè)話題)才是根本問題,而這是瀏覽器本身的實(shí)現(xiàn)原理導(dǎo)致的。小程序也需要在首次加載的時(shí)候把應(yīng)用相關(guān)的代碼(當(dāng)然資源大小可能有差異)下載下來,這同網(wǎng)頁沒區(qū)別,而性能的提升體現(xiàn)在后面同 UI 相關(guān)的效率上,從這個(gè)角度講也不是什么新鮮事兒了,ReactNative、Weex 都是類似的原理和訴求。

所以需不需要下載,并不是兩種技術(shù)之間相比在性能上的主要差異。小程序的價(jià)值不是在技術(shù)上,而是在能否通過它來 leverage 整個(gè)微信生態(tài)及附屬其上的相關(guān)資源。這就要涉及到小程序作為 runtime 到底給接入商提供什么樣的能力、多大程度的把微信生態(tài)的資源暴露給開發(fā)者、入口位置、限制上等等,這就取決于微信自己的生態(tài)策略了。瀏覽器作為開放標(biāo)準(zhǔn)的中立技術(shù),廠商對生態(tài)的控制其實(shí)非常有限,因?yàn)榇蠹也幌Mヂ?lián)網(wǎng)的入口被某一家商業(yè)公司所完全掌控,這是為什么當(dāng)年微軟選擇在操作系統(tǒng)捆綁 IE,也是為什么會(huì)被起訴壟斷。作為開發(fā)者,(大多數(shù)情況下)不需要考慮用戶用什么瀏覽器,因?yàn)楦髌放频臑g覽器(通常情況下)遵循同樣的標(biāo)準(zhǔn)。過去十幾年不停有公司想基于瀏覽器做封閉的生態(tài)和標(biāo)準(zhǔn),比較成功的也就只有 UC 一家了,但是大家可以問下作為 web 開發(fā)者對 UC 瀏覽器的平價(jià)是如何的 =。=...強(qiáng)化微信的「入口」能力才是小程序的野心。入口就是個(gè)門,既然是門就是雙向的——作為用戶,從什么途徑獲取到我需要的信息/服務(wù)(從哪扇門進(jìn)去?)?作為內(nèi)容/服務(wù)提供商,從什么途徑能夠接觸到我的目標(biāo)和潛在用戶(在哪扇門后等候或者直接出去?)?

目前從官方發(fā)布的信息來看,微信描繪的圖景對于用戶確實(shí)還是很美好的,裝了微信,掃下二維碼就可以方便的交水電費(fèi);而對于服務(wù)商,現(xiàn)在還看不到太多的好處,沒有高曝光的入口,不能推送等等,直接限制了服務(wù)商 touch 用戶的能力,但如果你天然是個(gè)自帶流量的大 V 服務(wù)商,小程序能提高現(xiàn)有流量在某些場景(現(xiàn)在看線下可能是主要)的轉(zhuǎn)化率,則是能馬上實(shí)現(xiàn)的,但想從微信的生態(tài)拿流量可能就沒那么簡單,微信成貔貅把大 V 流量都轉(zhuǎn)化成自己的倒是很有可能。有微信全球 7 億月活的用戶(2015 年底數(shù)據(jù))資源,至于是不是基于所謂的 web 技術(shù)來實(shí)現(xiàn),who cares?

=========補(bǔ)充一下關(guān)于小程序最終使用 webview 渲染的事情。目前的小程序最終還是使用 webview 渲染,這是之前表述不嚴(yán)謹(jǐn)?shù)牡胤健6宜f的 runtime 差異,是指開發(fā)者的運(yùn)行環(huán)境依賴于什么。小程序的環(huán)境,就是開發(fā)者所能接觸到的最底層環(huán)境,開發(fā)者只依賴小程序給大家提供的環(huán)境。而這個(gè)環(huán)境再下層如何處理,并不受開發(fā)者控制,也沒有任何辦法 access,這意味小程序的開發(fā)并不依賴 webview,開發(fā)的目標(biāo)平臺(tái)也不是 webview。

這樣實(shí)現(xiàn)的原因,可能有很多,比如綜合考量研發(fā)成本和收益、最大化利用現(xiàn)有技術(shù)等等。而可能性同樣很多,比如他可以隨時(shí)把渲染換成原生 UI,而不需要現(xiàn)有的接入商做任何調(diào)整。無論開發(fā)體驗(yàn)多像瀏覽器,它都不是瀏覽器,即使它現(xiàn)在最終使用 webview 來渲染,開發(fā)者同這個(gè) webview 中間還是有個(gè)中間件的,就像你不能說我在一個(gè)跑在 Windows 上的瀏覽器里做 web 開發(fā)就是在做 Windows 開發(fā)一樣。它是微信自己規(guī)定的一個(gè)新環(huán)境,只能同微信允許訪問的資源互動(dòng)。

二十幾年 web 開發(fā)所積累的經(jīng)驗(yàn),能復(fù)用到其中的除了語言層面之外,并不多,當(dāng)然目前它的復(fù)雜度也不高。只要它定義好的 API、標(biāo)準(zhǔn)不變,作為 runtime 如何理解、執(zhí)行就同開發(fā)者無關(guān),更重要的是我們無法控制。WXML 轉(zhuǎn)成 HTML 再給 webview 渲染,這是 runtime 的行為,對開發(fā)者是透明的。

某個(gè)版本如果把 WXML 直接繪制成原生 UI 了,他不說用戶和開發(fā)者可能都是無法感知的事情。


如沒特殊注明,文章均為善微網(wǎng)絡(luò)原創(chuàng),轉(zhuǎn)載請注明來自http://www.kunming3.com/news/378.html
相關(guān)標(biāo)簽
相關(guān)新聞

湖南省文化和旅游廳2024年湖南文化旅游主流媒體及商業(yè)門戶網(wǎng)站推廣傳播項(xiàng)目公開招標(biāo)公告

湖南省文化和旅游廳 的2024年湖南文化旅游主流媒體及商業(yè)門戶網(wǎng)站推廣傳播 進(jìn)行...

日期:2024-10-17 瀏覽次數(shù):1298

搬家下單小程序開發(fā)方案

搬家下單小程序旨在為用戶提供一站式搬家服務(wù)解決方案。它將搬家過程中的各項(xiàng)服務(wù)整合...

日期:2023-11-27 瀏覽次數(shù):90058

產(chǎn)品設(shè)計(jì)師從哪里獲得靈感?

學(xué)習(xí)設(shè)計(jì)酷炫的東西來給人們留下深刻印象的工具很容易。 ...

日期:2023-10-14 瀏覽次數(shù):95058

長沙宇立電氣有限公司官網(wǎng)上線

長沙宇立電氣有限公司是專業(yè)開發(fā)工業(yè)自動(dòng)化控制系統(tǒng)、過程控制儀表以及機(jī)電一體化產(chǎn)品...

日期:2023-10-14 瀏覽次數(shù):94912

DragGAN:人工智能驅(qū)動(dòng)的圖像編輯工具,讓編輯圖像變得簡單

DragGAN 是馬克斯普朗克研究所開發(fā)的一種新的 AI 工具,允許用戶通過幾次...

日期:2023-05-24 瀏覽次數(shù):203224

?