微信小程序的優化技巧及其和App之間的關系
小程序科普類的文章已經很多了,這里講下針對小程序的優化方法,可以有效提高小程序的響應速度和用戶體驗,當然,開發體驗也提高不少。
1,提高頁面加載速度——前端永恒不變的話題。
在小程序這個環境下,怎樣提高頁面加載速度呢,這個問題很大,我把問題具體一下,如何縮短從用戶點擊某個鏈接,到打開新頁面的這段時間,這里拋一個核心關鍵點:。
從頁面響應用戶點擊行為,開始跳轉,到新頁面onload事件觸發,存在一個延遲,這個延遲大概在100-300ms之間(安卓響應比ios慢些)。
這個延遲說短不短,我們可以利用這段時間,預先發起新頁面所需要的網絡請求,這樣一來,就節省了100-300ms(或者一個網絡請求的時間)。
知道有這個gap后,代碼如何實現呢。
說白了,就是實現一個在A頁面預加載B頁面數據的功能,但而這種跨頁面的調用,很容易把邏輯搞復雜,將不同頁面的邏輯耦合在一起,所以,一鍵生成小程序我們希望將預加載的邏輯隱藏于無形中,不增加任何的頁面間耦合,以及開發復雜度。
可以看到,不管是外部頁面的調用還是實際邏輯的實現都非常簡潔,在第二個頁面中,我們擴展了Page的生命周期函數,增加了onNavigate方法,該方法在頁面即將被創建但還沒開始創建的時候執行。
老司機也許會發現這里有點蹊蹺,在首頁點擊的時候,播放頁根本就沒有創建,對象都不存在,怎么訪問到里面的方法呢。
這里就要說下微信的頁面機制。
在小程序啟動時,會把所有調用Page()方法的object存在一個隊列里(如下圖),每次頁面訪問的時候,微信會重新創建一個新的對象實例(實際上就是深拷貝),也就是說,在A頁面在執行點擊響應事件的時候,B頁面的實例還沒創建,這時候調用的onNavigate方法,實際上是Page對象的原型(小程序啟動時候創建的那個),而接下來馬上要被創建的B頁面,又是另外一個object,所以,在onNavigate和onL小程序開發多少錢oad方法中,this指針指的不是同一個對象,不能把臨時數據存儲在當前object身上,因此我們封裝了一對全局的緩存方法,$put()和$take()。
早在小程序上線時,就有開發者討論小程序對App業態的沖擊,而今小程序被爆出多方面升級,更加深了這種擔心,阿拉丁創始人史文祿描述了這樣一個場景,用以解釋小程序為App提供的輔助作用:一個本想騎共享單車去三公里左右地方的人,會因為沒有下載摩拜App而選擇打車,但如果微信掃碼可以直接跳轉小程序去使用單車,用戶就自然地被留存下來了。
作為小程序統計工具先行者,史文祿介紹,上線兩個月以來,微信小程序的入駐和使用情況是“符合甚至超出預期”的,“部分小程序用戶留存很高,數據整體是向上的趨勢,”他表示,小程序后臺可以記錄包括訪問用戶數,老用戶使用次數分布等多維度的數據,這些數據遠比用時間積累的流量更加珍貴,因為用戶會否重復使用直接體現產品在需求端的價值,快速生成小程序。
對于小程序和App之間關系的討論,他表示,一個新的商業產品,或多或少都會與既有產品存在競爭,就好像有了網站還會出現App,有了App仍然出現了公眾號,雖然功能相互重疊,但正是用戶行為的遷移催生了更適應新生態的產品。
“所謂競爭或重復都是表面的,要探究底層差異,小程序降低了移動應用開發的門檻,提高了社會效率,這已經是具有變革性的了,在很短的時間就可以創造一個原生應用,這對于創業公司和開發者是巨大的利好,”史文祿坦言,小程序或許不會適用于所有服務,但市場一定是巨大的,甚至符合了供給側改革的思路。
“小程序是產業升級和渠道下沉背景下的新技術帶來的新零售革命,”這是史文祿對小程序的描述,他認為小程序很可能帶來真正的新零售,“我理解的新零售,是指傳統零售通過與新技術的打通,提升為用戶提供的服務,擴大服務輻射的范圍,改變傳統的業態或工作方法,新零售不能脫離零售本質的效率指標,即成本降低,收益增加,” 。
合肥微必知科技專業從事移動互聯網整合營銷,微信分銷系統開發,小程序開發,APP開發,直播系統定制,紅包二維碼定制的服務商,專業化的服務為您打造最極致的全網多渠道營銷渠道,http://www.www-157333.com/。