2009-06-02 86 views
0

jQuery和類似的庫爲DOM遍歷和處理提供了許多有用的API。如果您的網站數量較多,重複訪問者的使用很容易,因爲緩存將抵消最終用戶的任何帶寬成本。具有類似於jQuery功能的模塊化Javascript庫

在其他情況下,該網站的訪問者可能始終是唯一的,因此相對於開發團隊而言,這些庫的帶寬損失可能過於嚴重。

是否有任何庫提供這種類型的DOM交互,同時允許您選擇與頁面相關的部分。

例如,

jQuery('#myId').addClass('error'); 

和jQuery的許多其他的API可以在幾行代碼被複制,從而避免〜下載的50KB。

所以問題是,是否存在一個包含這些函數的庫,對庫的其他方面依賴性很小,或者我需要根據需要自己創建它們?

是否有可用於將現有庫(如jQuery)分解爲最小組件的機制/工具?

回答

4

正如here所討論的那樣,如果您使用google作爲庫的主機,用戶可能已經在它們進入您的網站之前對其進行了緩存。

This page顯示您支持哪些庫。目前:

  • jQuery的
  • jQuery UI的
  • 原型
  • script.aculo.us
  • MooTools的
  • 道場
  • SWFObject的新!
  • Yahoo!用戶界面庫(YUI)新功能!

我所有的滾動你自己的,但要確保你知道所有的瀏覽器版本的所有的錯誤,如果你不使用庫。不過,這不是一個壞主意。如果您可以創建jQuery的自定義版本,那將會很好。我特別喜歡iPhone的Mobile Safari和Adobe AIR,它將所有非webkit的東西都刪除了。

+0

考慮使用Google託管版本。我們不能保證用戶將緩存該項目,並且用戶羣的合理部分不在寬帶連接上。用戶體驗至關重要。 該網站還用於安全內容,因此外部託管並不是完全可取的。 我並不是一個真正的滾動我自己的粉絲,它不是業務的核心競爭力。最終,我只想找到一種方法,或者有一個工具,允許選擇jQuery的所需部分等。 – bradhouse 2009-06-02 01:09:02

+0

+1是一個好主意,用於剝離非webkit的東西! – alex 2009-06-02 01:25:53

+0

我聽說jQuery正在開發一個移動版本,我假設沒有所有需要支持桌面瀏覽器最好用的垃圾。 – Nosredna 2009-09-22 15:37:13

0

結帳Sly。只有3kB。

+0

這只是一個選擇引擎的權利?我相信你不能用它來操縱它。嘶嘶聲,Peppy和其他人是相似的 – Nosredna 2009-06-02 00:44:01

3

jQuery的生產版本是19k,與相當小的圖像相同。在我的書中不是一個嚴厲的bandwidh處罰!

編輯:..也值得每K。

1

MooTools允許你只下載你想要的部分。所以,如果你想要的只是足夠用於JSON AJAX請求,那麼你已經掌握了它。

http://mootools.net/core

0

對不起傢伙,我莫名其妙地丟失了,其中一個是問JS庫的衝突解決方案的頁面。

我有同樣的問題,但現在我玩了一些JQuery腳本後解決了它。我知道這是*有點痛,但讓我們一步一步做。

首先讓我告訴你,在我的項目中,我使用了兩個不同的庫。我正在使用Lightwindow和JQuery。我無法使兩個庫的功能正常,但我想出了以下腳本。你必須在每個函數中使用這個腳本,這些腳本是用來使用JQuery函數的:

//此行說,美元符號$屬於JQuery庫。

jQuery的(文件)。就緒(函數($){// 你的源代碼放在這裏

});

讓我們稍微詳細地使用它。在我的情況我有一個點擊按鈕假設調用下面的函數:

 function popups(message, heading, actionlink, linkName) { 

//這是行告訴源代碼 //其餘承認jQuery函數。

  jQuery(document).ready(function($) { 

      // get the screen height and width  
      var maskHeight = $(document).height();  
      var maskWidth = $(window).width(); 


      // assign values to the overlay and dialog box 
      $('#dialog-overlay').css({height:maskHeight, width:maskWidth}).show(); 
      $('#dialog-box1').show(); 


      // display the message 
      $('#dialog-message-row').html(message); 
      $('#dialog-message-heading').html(heading); 
      $('#dialog-message-actionlink').html("<a onclick=function('x') class='button' id='delete'>"+linkName+"</a>"); 

      });//CLOSE JQuery translator 
     }