2011年5月30日 星期一

[介紹] SeaJS, 模組化開發加載套件. SeaJS, a loading library for web front end.


頁面上很多靜態檔案,使瀏覽器等待檔案下載,導致頁面短暫性的的當機,畫面整個卡住,滑鼠連點擊的動作都無法執行,因此許多人會使用動態方式加載靜態檔案,諸如javascript, css, img...等。

針對Javascript, CSS檔案,特別介紹這套SeaJS,有別于之前介紹的NodeJS,兩者都屬於遵從commonJS規範編寫而成,但是SeaJS主要針對前端Javascript , CSS下載時,使用nonblocking的方式,同時可以使用callback來執行接下來要處理的事情。

通常一般頁面處理,讀取靜態檔案方式如下:
<script src="/js/jquery.min.js"></script>
<script src="/js/jquery.easing-1.3.pack.js"></script>
<script src="/js/jquery.mousewheel-3.0.4.pack.js"></script>
<script src="/js/jquery.fancybox-1.3.4.js"></script>
<link rel="stylesheet" href="/js/jquery.fancybox-1.3.4.css"/>


我們看一下官方給予的基本範例,使用SeaJS改寫方式如下。
<script src="http://seajs.com/build/sea.js" data-main="./hello"></script>

主要程式寫在hello.js,內容如下。
define(function(require, exports) {

  exports.sayHello = function() {
    document.getElementById('out').innerHTML = 'Hello, SeaJS!';
  };

});

基本範例連結

如此,就可以產出nonblocking架構,因此頁面可以更快區分出模組化,分區加載所需要的javascript, css檔案,同時利用callback綁定事件,或者執行程序。如果熟悉NodeJS的朋友,可以根據commonJS的規範,開發額外的第三方元件(3rd party library),開發方式幾乎和NodeJS module無異。

SeaJS
官方網站
範例說明(簡單範例)
API說明(使用文檔)
相關文章(相關文章)
Github SeaJS project

SeaJS,是一套簡易使用的加載套件,優點在於nonblocking之後,加快使用者瀏覽頁面感覺,因分模組加載靜態檔案,可以節省時間及頻寬,不需要的檔案可以在第二時間之後進行載入。這邊單純用文字說明,可能還不是很清楚,作者對於此部份有寫一篇文章大家可以參考看看,計算機模組化開發

結語
SeaJS在目前使用經驗上,可以搭配任何套件,達到有效利用『模組化』的效果,使Javascript Code不會互相污染,盡量使用Object的方式開發,使團隊合作上效果更加顯著。

在使用者感受上,速度也會明顯提昇,同時對於Sever不會產生一次性龐大的reqeust,可以經由不斷地調整,分批下載所需的資料,以節省頻寬。





感謝各位收看!

沒有留言:

張貼留言

Facebook