mui開發app之plusready和init區別


初學mui會發現大量的demo中,都需要調用mui.init()和mui.plusReady(),可見這兩東西在app開發中的重要性

首先請注意一點,如果不是做app開發(非hbuilder基座運行),做web開發的話(在瀏覽器運行html),plusReady是沒有意義的,不會執行,為什么?

啥是html5+,和html5有什么區別?

所謂的html4.0標准我們就不去討論了,這是早期對瀏覽器標記語言解析的規范,在app開發中我們通常使用的是html5

html5:萬維網的核心語言、標准通用標記語言下的一個應用超文本標記語言(HTML)的第五次重大修改,於2014年發布,之后的瀏覽器必須遵守這個開發規范實現對html,css,javascript的解釋,其中css遵守最新的css3規范,javascript遵守最新的ECMAScript6。

html5+:其實還是html5,只是在html5針對手機開發app時補充了對大量原生功能支持,包括攝像頭,wifi,震動,gps等等的軟硬件功能,通過js封裝調用安卓原生接口使得h5開發app更加的強大,所以稱之為html5+(app的開發必須要使用html5+)

plusReady:對於 HTML5+應用的頁面有一個很重要的 “plusready”事件,此事件會在頁面加載后自動觸發,表示所有 HTML5+ API 可以使用, 在此事件觸發之前不能調用 HTML5+ API

init:mui本身只是一個html5的前端框架而已,類似於react.js,jquery mobile或者說像是bootstrap的針對手機簡化版,本身不具備開發app的功能,適合wap開發,但其中包含了html5+的方法,如果不使用上述html5+ plus對象,而只需要mui框架包含的wap開發功能,則是使用mui.init之后即可調用。

當然在app開過程中使用了mui框架作為css,js的渲染框架亦可:此時任然需要用到mui.init()初始化框架的

並且mui框架將很多功能配置都集中在mui.init方法中,所以只需要在mui.init方法中完成對應參數配置即可

目前支持在mui.init方法中配置的功能包括:創建子頁面、關閉頁面、手勢事件配置、預加載、下拉刷新、上拉加載。

無論做wap網頁,還是app開發,只要需要用到mui框架,都需要mui.init初始化框架功能,而plusready僅僅在app開發中使用

mui個人習慣:

  1. 每個用到mui的頁面都調用下mui.init,直接放在js最前方
  2. 除了function定義函數之外,全都寫在plusReady之中,function調用也放在其中,畢竟做app開發調用html5+api十分的頻繁,就像jq的$(document).ready()一樣的道理,尤其是出現plus對象的一定放在plusReady里面!

目前尚不清楚plusReady過分臃腫對性能是否造成傷害。理論上只是在html5+加載完之后執行其中的代碼罷了,是不會影響性能,只會晚一點執行(延遲並不會感受到)

關於mui plusReady的注意點:

mui.plusReady()中的代碼不執行

可能1:

你在瀏覽器下運行了html

可能2:

plusReady事件僅在webview首次創建時觸發,使用mui.openWindow方法多次打開已存在的同樣id的webview時,是不會重復觸發plusReady事件的; 因此若業務寫在plusReady事件中,可能會出現執行結果和預期不一致的情況;此時可通過自定義事件觸發


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM