簡體   English   中英

關閉圖書館或YUI 3

[英]Closure Library or YUI 3

我正在使用python,django構建企業Web應用程序。 我最后決定使用哪個javascript庫。 我正在考慮使用Google的閉包庫或YUI3。 大多數開發,我都使用過jQuery。我可以使用jQuery快速編碼,但似乎不適合企業使用。

YUI 3似乎很不錯。 它包括我想要使用的大多數小部件,但Closure庫幾乎完全相同。 Closure庫更好的提供是他們有Closure Compiler,但似乎Closure需要編寫比YUI 3更多的代碼。來自YUI 3的文檔也非常好。

該應用程序將適用於Web和移動設備,因此該庫不應該在Android或iPhone等移動設備中中斷。

如果你是我,你會做出什么決定?

Disclamer

我主要是在企業環境中對jQuery的評論,因為我缺乏YUI的經驗,所以我不能給出關於[不]在閉包上使用它的任何有意識的建議。

但是由於缺乏任何其他答案,我將與Closure分享我的經驗。


關閉庫

至於Closure庫,我一直用於最后幾個項目,但我絕不是專家,我只能說好事。

庫提供了構建任何類型UI時所需的核心組件。 但是,與jQuery不同,它沒有數以萬億計的“可隨時部署 ”的插件腳本,或者有些人會說,沒有包含電池。

它有基本的事件,控件,xhr,對話框,表單組件等,並且通過我的帳戶最重要的是命名空間 (或者至少看起來像它們的東西......)。

有了這個,您可以創建自己的自定義UI,僅受您的想象力和JavaScript的強大功能(即使它確實有自己的煩惱,JS也是非常強大的語言)。

Closure編譯器的幫助下,它不僅縮小了代碼,而且排除了所有未使用的代碼,進行了類型檢查,提供了對debuging等有用的警告,它看起來像是構建任何規模的團隊的大型應用程序的堅實基礎。

在我看來,在企業項目中使用Closure而不是jQuery的主要原因是一致性。 插件很棒但是它們往往包含所有級別的不一致性,無論是編程實踐,視覺樣式和結構,性能,用法,您都可以命名。 消除大型項目中的這些小的不一致可能會浪費大量時間。

總而言之,如果你有大型項目需要自定義UI和很多靈活性,Closure是適合這項工作的工具。 有了“命名空間”,它甚至感覺都是Python。

PS我們還在服務器端使用Django。

您已經觸及了這里的大多數重要方面,類型檢查,縮小,命名空間,但我想補充一些。 除此之外,它們還提供模板化解決方案,不僅速度快,而且具有全面的國際化支持,可與圖書館混合使用。 它還可以編譯為java代碼,因此您可以從同一模板在服務器和客戶端上進行渲染。 然后是組件架構,它有一個完整的生命周期,從組件中分離渲染器(如果你熟悉swing或flex你會得到這個想法),它有兩個模型,一個是客戶端渲染,另一個是裝飾精美的服務器端渲染。

測試解決方案已經很好地定義了,現在我們有成千上萬行javascript並且沒有關閉它將是一個難以維護的混亂IMO。

我會選擇YUI 3.特別是如果你考慮Google的Closure的唯一原因是編譯器。 因為這在YUI 3中運行良好,壓縮比YUI壓縮器好得多。 我確信它不會像Closure代碼那樣做得那么好,但這很難測試。

YUI 3中的模塊化框架非常棒,並且有足夠的糖可以讓你牙齒疼痛而不會太重。 雅虎將它用於他們所有的網站,他們非常重視性能(所以它不是一件壞事)。

在我做的測試中,Google Advanced Compress更好,並且在Yahoo!之后 YUI壓縮機。 您可以在此處進行測試: http//jsperf.com/closure-vs-yui

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM