轉自:https://www.jianshu.com/p/6aa790c07131html
mui框架將不少功能配置都集中在mui.init方法中,要使用某項功能,只須要在mui.init方法中完成對應參數配置便可,目前支持在mui.init方法中配置的功能包括:建立子頁面、關閉頁面、手勢事件配置、預加載、下拉刷新、上拉加載。html5
可是官方有又說法:web
mui在頁面初始化時,初始化了不少參數配置,好比:按鍵監聽、手勢監聽等,所以mui頁面都必須調用一次mui.init()方法;api
在app開發中,若要使用HTML5+擴展api,必須等plusready事件發生後才能正常使用,mui將該事件封裝成了mui.plusReady()方法,涉及到HTML5+的api,建議都寫在mui.plusReady方法中。瀏覽器
1.每一個用到mui的頁面都調用下mui.init。app
2.若是須要使用大H5+對象,就寫到plusReady中,如plus對象。框架
初學mui會發現大量的demo中,都須要調用mui.init()和mui.plusReady(),可見這兩東西在app開發中的重要性函數
首先請注意一點,若是不是作app開發(非hbuilder基座運行),作web開發的話(在瀏覽器運行html),plusReady是沒有意義的,不會執行,爲何?性能
不管作wap網頁,仍是app開發,只要須要用到mui框架,都須要mui.init初始化框架功能,而plusready僅僅在app開發中使用ui
mui我的習慣:
每一個用到mui的頁面都調用下mui.init,直接放在js最前方
除了function定義函數以外,全都寫在plusReady之中,function調用也放在其中,畢竟作app開發調用html5+api十分的頻繁,就像jq的$(document).ready()同樣的道理,尤爲是出現plus對象的必定放在plusReady裏面!
目前尚不清楚plusReady過度臃腫對性能是否形成傷害。理論上只是在html5+加載完以後執行其中的代碼罷了,是不會影響性能,只會晚一點執行(延遲並不會感覺到)
mui.plusReady()中的代碼不執行
可能1:
你在瀏覽器下運行了html
可能2:
plusReady事件僅在webview首次建立時觸發,使用mui.openWindow方法屢次打開已存在的一樣id的webview時,是不會重複觸發plusReady事件的; 所以若業務寫在plusReady事件中,可能會出現執行結果和預期不一致的狀況;此時可經過自定義事件觸發
mui.init初始化mui的一些參數配置
若是要使用h5+的一些對象、方法,就要使用mui.plusReady,好比mui.plus對象。
mui,init每次寫js,最好都加上。
ready表明DomcontentLoaded
plusReady表明plus基座
能夠這樣理解:ready是在PC和移動端都能運行,plusReady僅僅在移動端運行;