使用JavaScript庫的缺點和優點

才智咖 人氣:3.25W

你必須做出決定以這兩種方法中的哪一種來寫你的JavaScript,為了幫助您作出明智的決定哪個更適合你,我們將對比一下這兩種方法的一些優劣。

使用JavaScript庫的缺點和優點

在過去使用JavaScript庫的一個缺點是,庫往往相當大,也許包括不少在你的個人網頁中實際是不怎麼使用的程式碼。或許,編寫自己的程式碼可以被認為是最能完全滿足你真正需求的方法,而且沒有其他比這更有效的方法了。但在引入Google的一個通用倉庫後,每個人都可用通過連結使用比較流行的JavaScript庫的時候,就否定了這種說法,因為如果你連結到的是Google的庫副本,而不是使用自己的副本,這樣大量訪客將會有已經緩衝在他們的瀏覽器上的庫,實際須下載的只是你頁面的一部分程式碼而已。這樣做可以使得使用它比自己做的庫更快。

自己編寫程式碼而非依賴於庫的一個優點是,你不用學太多東西。要能夠自寫JavaScript,你只需要學習JavaScript就可以了。而要能夠使用庫則需要同時學習JavaScript以及這個庫。你可能可以做到像這樣的事情,只學習庫而還沒有學習JavaScript,但就能夠利用的最好方式來使用這個庫,那你將需要比那些只是使用JavaScript來編寫自己程式碼的典型的人要對JavaScript有更多的瞭解。

使用庫的優勢在於,庫已處理了你需要執行的90%的操作,這意味著你只需要編寫的餘下10%。在有大量的程式碼編寫的時候,這可以節省你編寫程式碼的時間。而在除了編寫程式碼,還需要對其進行測試的時候,它就可能會或可能不會節省時間了,除非你深入瞭解如何讓你所選的庫在測試時間做應該做的事,使用庫最終可能會比你自己寫程式碼大大延長了時間。

另一件你要考慮的事是,在一個給定的庫中包含了多少程式碼是你實現你想達到的目標將實際需要使用到的,以及庫實際上是否包括了所有你想要的操作。如果你不能找到一個有你所需的一切功能的庫,那麼你就需要自己編寫其餘的程式碼或嘗試引入第二個包括了缺少的功能的庫。取決於庫是如何工作,將可能可以或可能不可以在相同的網頁中同時使用兩個庫。

事實上在你考慮使用庫之前,你需要自己寫多少JavaScript程式碼也會影響你的決定。如果你已經自己寫了能執行所有你需要的不同函式的處理,則有可能打消你選用一個同樣提供所有這些相同功能但實現方式不同的庫的想法。鑑於這些首先寫這些庫的`人一般都是對JavaScript具有深入瞭解的人,你必須承認的一個合理的可能性是,一個提供這些功能的庫比你自己寫的更有效率(除非你也有一個JavaScript專家)。

你要新增到網頁中的JavaScript處理是什麼樣的型別,也將影響是否合適使用庫。如果你只把很小的特效到你的網頁,只需要幾行JavaScript程式碼,那麼比起自寫所有的程式碼,用一個庫可能會導致你不得不編寫更多的程式碼去作為實現庫工作方式的介面。當然,反過來同樣適應,如果你要新增到你的網頁中的處理是數量相當大的且與你選用的庫的功能型別密切匹配的,那麼都可以讓庫為你處理。

選擇一個功能是密切符合你想要使用到你的網頁中的庫,並很好的理解JavaScript以及這個庫,那就可以快速和容易加入所有你想要的功能,以這種現代的不唐突的方式可能是最適合你的方法。另外,如果你已經寫了多年的JavaScript,而且已經有你的能執行大多數你不斷要求的功能的程式碼庫,那你就可以不必選擇和學習任何一個庫就達到相當的效果。

個人總結

個人覺得,Stephen Chapman的這篇文章很好的對比了JavaScript庫和自寫程式碼的優缺點,其實,如果能夠在使用JavaScript庫的時候,充分的利用它,去實現它應有的價值,那JavaScript庫將會是一種很好的工具,一種創造富客戶端以及給使用者帶來良好體驗的一種工具,而非成為載入頁面時的一種額外的負擔。而對於喜歡自寫程式碼的人,我覺得也有必要將一些功能,有如DOM操作和事件處理封裝起來,畢竟原生的JavaScript在不同的瀏覽器存在著較多相容問題和效率問題(可參考 阿當的《JavaScript分層概念》)。同時我還覺得,如果在使用一個流行的JavaScript庫(如jQuery、YUI、Ext JS)的時候,能去了解一下這些庫的實現機制,這樣才能更好的駕馭這些庫!

TAGS: