學習 easyui 之一:easyloader 分析與使用

來源:互聯網
上載者:User

使用指令碼庫總要載入一大堆的樣式表和指令檔,在 easyui 中,除了可以使用通常的方式載入之外,還提供了使用 easyloader 載入的方式。

這個組件主要是為了按需載入組件而誕生。什麼情況下使用它呢?
  1. 你覺得一次性匯入 easyui 的核心 min js 和 css 太大
  2. 你只用到 easyui 的其中幾個組件
  3. 你想使用其中的一個組件,但是你又不知道這個組件依賴了那些組件。
如果你有以上三中情況,那麼推薦你使用easyLoader。它可以幫你解決這些問題。

easyloader 用來協助我們自動載入所需的指令檔和樣式檔案,這樣,我們只需要在頁面中引用 jquery 指令碼 和 easyloader 指令碼,easyloader 就可以協助我們分析模組的依賴關係,先載入依賴項。模組載入好了會調用parse模組來解析頁面。把class是easyui開頭的標籤都轉化成easyui的控制項。

下面我們,以使用 messager 模組為例,使用 easyloader 載入所需的模組。

我們的頁面可以簡單的僅僅寫入下面的內容。注意,並不需要通常的樣式表和一大堆的指令碼引用。

<!DOCTYPE html><html lang="en" xmlns="http://www.w3.org/1999/xhtml"><head>    <meta charset="utf-8" />    <title></title></head><body>    <a id="btnAlert" class="easyui-linkbutton">彈出提示框</a>    <script src="scripts/jquery-1.8.0.min.js" type="text/javascript"></script>    <script src="scripts/easyloader.js" type="text/javascript"></script>    <script type="text/javascript">        easyloader.locale = "zh_CN";        using("messager", function () {            alert("載入成功!");            $("#btnAlert").click(function () {                $.messager.alert('Warning', 'The warning message');            });        });    </script></body></html>

 

注意看!只有 jquery 的指令碼和 easyloader 的指令碼,完全沒有一大堆的樣式和其他指令檔。

load 用來使用代碼來說明需要載入的模組,這是在 easyloader 中定義的一個函數,函數的第一個參數為準備載入的模組名稱,第二個參數為載入成功之後的回呼函數。這裡用來提示已經載入成功。

load 載入的模組有兩種格式,即可以是一個字串表示的單個模組,也可以是一個字串的數組,同時載入多個模組。

//name有兩種,一種是string ,一種是string array,這樣一次可以載入多個plugin,都是調用add方法進行添加  if (typeof name == 'string') {    add(name);} else {    for (var i = 0; i < name.length; i++) {        add(name[i]);    }}

easyloader.load 還有一個別名 using 定義在 window 對象上,如下所示:

window.using = easyloader.load; 

所以,載入的代碼也可以這樣寫。

using("messager", function () {    alert("載入成功!");});

載入成功之後,我們就可以在代碼中使用已經載入的模組了。

頁面中還使用 class 說明了一個按鈕,這裡使用了 class="easyui-linkbutton",easyloader 還可以協助我們解析元素中的特殊類名,直接就在頁面中使用過的模組。

easyloader 會在它所在檔案夾中,尋找 plugins 子檔案夾中的指令碼,和 themes 檔案夾中的樣式表。所以需要保證檔案儲存在正確的位置。

不過,easyloader 還提供了一個 base 屬性,用來指定尋找外掛程式和指令碼的起點。

// jquery-easyui的根目錄,在載入easyloader時,會自動根據你放置的位置而改變  base:'.', 

除了 base , 還有幾個重要的屬性

base:'.',//該屬性是為了載入js,記錄檔案夾路徑的  theme:'default', //預設主題  css:true,    locale:null, 

比如,希望使用中文語言套件,則可以如下使用。你會看到提示框的按鈕中的文字已經從 Ok 轉換為了 "確定"。

easyloader.locale = "zh_CN";using("messager", function () {    alert("載入成功!");});

 

 相關閱讀:

kalllx 的 easyloader.js源碼閱讀

 資源下載:

點擊下載樣本檔案

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.