JQuery EasyUI 引用加載分析


 

easyui是什么,就不介紹了,接觸到前端的就算沒用過,肯定也應該聽說過。其次,本文不是介紹它提供如calendar、tree等這些功能如何使用的,這些官網上介紹都很詳細,中文的網上也不少。本文是從easyui的文件目錄結構上來說起,談一下easyui的兩種引用加載方式。

 

引用加載方式

easyui的加載可以分為兩種方式,方式一:餓漢式加載;2:懶漢式加載。在具體討論這兩種加載方式之前,我們先看下easyui目錄結構。

 

目錄結構

demo文件夾:一些示例,(正式項目中刪除)

locale:一些不同語言的文件,其實是對easyui的擴展。(只須保留你想用的語言相對應的文件)

plugins:easyui提供的各個功能的文件。(使用方式二加載必須保留,方式一加載可以刪除)

src :各個插件的源文件,不是全部,其實有些功能不是開源的,是商業授權,因此沒有源文件。(可以刪除)

themes:主題,就是css文件和要用到的圖標文件,里邊提供5種風格。(可以只保留要使用的風格,並且具體到一個風格里,又分為兩部分:easyui.css和其它所有css。easyui.css是其它所有css的合並后結果,在不同的加載方式中只會用到一部分。)

easyloader.js:暫且稱之為加載器文件。在使用方式一加載也不會被使用。

jquery.easyui.min.js:easyui的主文件。它是plugins下所有文件合並后的結果,因些它在使用方式一加載必須保留,方式二加載不會使用到,可以刪除(主文件可以刪除,沒聽錯吧??哈哈,相信我,可以的。)。

jquery.min.js:jquery文件,easyui是基於jquery的,因此是必須的。

 

其它的是一些授權文件和更新日志之類的,就不說了。

 

這里有兩個重點:jquery.easyui.min.js是plugins下所有文件合並后的結果,具體到某個風格下如default下所有css:easyui.css是余下的其它所有css合並之后的結果

這樣就導致了不同的兩種加載方式。

 

餓漢式加載

<link rel="stylesheet" type="text/css" href="easyui/themes/default/easyui.css">
<link rel="stylesheet" type="text/css" href="easyui/themes/icon.css">
<script type="text/javascript" src="easyui/jquery.min.js"></script>
<script type="text/javascript" src="easyui/jquery.easyui.min.js"></script>

這種也是最常用的方式。這種方式會加載easyui提供的所有功能,不管你頁面上會不會用的到,簡單暴力。

 

懶漢式加載

<link rel="stylesheet" type="text/css" href="easyui/themes/icon.css">
<script type="text/javascript" src="easyui/jquery.min.js"></script>
<script type="text/javascript" src="easyui/jquery.easyloader.js"></script>

這種方式就相對比較懶,只會在使用特定功能的時候才會加載相對應的plugins下的js和風格里css文件,而其它不使用的功能對應的js和css永遠不會被下載。而easyloader.js就是負責用於加載各個插件的。

 

調用

同樣,都是兩種使用方式,我們這里只討論下在方式2調用過程。

當頁面中包含如:

<a href="#" class="easyui-linkbutton" onclick="load1()">Load Calendar</a>

html標記中class指定easyui-linkbutton之類easyui特定的標記時,easyui會檢測到並自動的去下載相對應的文件,並應用相應的樣式和功能。對於easyui-linkbutton標記就是去下載themes/default/linkbutton.css和plugins/jquery.linkbutton.js這兩個文件,然后改變a的顯示樣式。

 

當然我們可以手動通過js去調用相關功能:

using('calendar', function(){
                $('#cc').calendar({
                    width:180,
                    height:180
                });
            });

這樣就會去加載calendar對就的css和js文件,並在id為cc的div上創建一個日歷控件。

 

問題

很快,我們就會發現一些問題。

 

風格

方式1的加載我們通過引用 themes/default/easyui.css來指定,引用不同風格下的easyui.css來使用不同的風格,但是方式2我們並沒用指定風格?如何指定風格?

不指定時,默認是引用default風格下的樣式,就會去下載該風格下的樣式。如果你使用方式2時且沒有指定風格,不存在default風格就會出現問題。

當然我們可以在頁面加載后通過

easyloader.theme = "gray";

來指定風格。

 

語言

同樣的對於語言文件,對於方式1我們可以直接在頁面引用jquery.easyui.min.js的后面引用。

<script type="text/javascript" src="easyui/locale/easyui-lang-zh_CN.js"></script>

但是這對於方式2的加載,這是不起作用的。

因些語言文件其實是對各個插件默認配置的修改,當插件都還沒有加載時,語言文件對它的修改當然是不會起作用的。

因此我們可以通過下面

easyloader.locale = "zh_CN";

來指定使用何種語言。

 

完畢。


免責聲明!

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



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