MUI -- plus初始化原理及plus is not defined,mui is not defined 錯誤匯總

不要在沒有plus和mui的環(huán)境下調(diào)用相關(guān)API,普通瀏覽器里沒有plus環(huán)境,只有HBuilder真機(jī)運(yùn)行和打包后才能運(yùn)行plus api。

在普通瀏覽器里運(yùn)行時plus api時控制臺必然會輸出plus is not defined錯誤提示。

mui作為一個前端框架,你必須保證當(dāng)前頁面引入了mui.js。否則也會出現(xiàn)mui is not defined。

不要在plus和mui未完成初始化時調(diào)用相關(guān)API,就像在dom初始化完成前(DOMContentLoaded)去操作dom,就會報錯是一樣的道理。

plus和mui都需要初始化,在初始化完成后調(diào)用再調(diào)用。
一般我們在plusready的回調(diào)事件里調(diào)用plus api。

document.addEventListener('plusready',function () {
    // 在這里調(diào)用plus api
},false);

執(zhí)行更高效的寫法是這樣,如果plus已經(jīng)存在,就直接使用

function plusReady(){
        // 在這里調(diào)用plus api
    }
    if(window.plus){
        plusReady();
    }else{
        document.addEventListener('plusready',plusReady,false);
    }

mui框架對此進(jìn)行了封裝,寫法更簡單:

mui.plusReady(function(){
         // 在這里調(diào)用plus api
    });

事實上,mui作為一個框架,也有初始化的過程,但mui的初始化過程在DOMContentLoaded完畢后就結(jié)束了。

mui ready的寫法是這樣,但一般無需使用。

mui.ready(function () {

    })

關(guān)于加載順序

在瀏覽器里的常規(guī)加載順序是DOMContentLoaded、onload。

plus的ready是異步的,所以不一定在DOMContentLoaded之前或之后,但一般在onload之前。

而mui的ready一般伴隨DOMContentLoaded而完成。

詳細(xì)的啟動時序參考這里:http://ask.dcloud.net.cn/article/571

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • MUI背景介紹 MUI是一套前端框架,由DCLOUD公司研發(fā)而成,提供大量H5和js語言組成的組件,大大提高了開發(fā)...
    jackzhouyu閱讀 29,891評論 2 76
  • 五十三:請解釋 JavaScript 中 this 是如何工作的。1.方法調(diào)用模式當(dāng)一個函數(shù)被保存為一個對象的屬性...
    Arno_z閱讀 684評論 0 2
  • 周末陪兒子一起學(xué)英語,突然發(fā)現(xiàn)新概念中的插畫簡直是大師級水準(zhǔn)!筆法精煉,表情傳神。 于是我和兒子商量:我們一起來畫...
    Navigator117閱讀 841評論 0 1
  • 因為近期項目中需要接入支付寶支付功能,自己也爬了很多的坑,所以做了一下這邊文章供大家學(xué)習(xí)參考,遠(yuǎn)離爬坑,文章主要講...
    lyonLiu閱讀 37,214評論 19 151
  • 那天一個朋友問我“要當(dāng)作家么”,我頭一次大言不慚但又略帶羞澀地回答道“有夢想,太遙遠(yuǎn),在路上”。 是的,我在堅持“...
    五六六閱讀 567評論 5 2

友情鏈接更多精彩內(nèi)容