mui.init(),,,,,mui.plusReady()
首先我們來看下mui.init()與mui.plusReady()的區別:
mui框架將很多功能配置都集中在mui.init方法中,要使用某項功能,只需要在mui.init方法中完成對應引數配置即可,目前支援在mui.init方法中配置的功能包括:建立子頁面、關閉頁面、手勢事件配置、預載入、下拉重新整理、上拉載入。 但是官方有又說法: 頁面初始化:必須執行mui.init方法 mui在頁面初始化時,初始化了很多引數配置,比如:按鍵監聽、手勢監聽等,因此mui頁面都必須呼叫一次mui.init()方法;
在app開發中,若要使用HTML5+擴充套件api,必須等plusready事件發生後才能正常使用,mui將該事件封裝成了mui.plusReady()方法,涉及到HTML5+的api,建議都寫在mui.plusReady方法中。
個人認為: 1.每個用到mui的頁面都呼叫下mui.init。 2.如果需要使用大H5+物件,就寫到plusReady中,如plus物件。
初學mui會發現大量的demo中,都需要呼叫mui.init()和mui.plusReady(),可見這兩東西在app開發中的重要性
首先請注意一點,如果不是做app開發(非hbuilder基座執行),做web開發的話(在瀏覽器執行html),plusReady是沒有意義的,不會執行,為什麼?
無論做wap網頁,還是app開發,只要需要用到mui框架,都需要mui.init初始化框架功能,而plusready僅僅在app開發中使用
mui個人習慣:
每個用到mui的頁面都呼叫下mui.init,直接放在js最前方 除了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事件中,可能會出現執行結果和預期不一致的情況;此時可通過自定義事件觸發
mui.init和mui.plusReady這兩者到底什麼關係
mui.init初始化mui的一些引數配置 如果要使用h5+的一些物件、方法,就要使用mui.plusReady,比如mui.plus物件。 mui,init每次寫js,最好都加上。