2010-06-11 40 views
14

我最近繼承了生產網站的一個大而醜陋的代碼庫的維護。 把你的眼睛u出來。雖然它很大,但它主要是PHP代碼,除了用戶界面中的一些「ajaxy」外,它沒有太多的JS。在一個醜陋的代碼庫中查找jQuery UI的用法

我們目前主要的問題是網站太重了。目前主頁重量爲1.6 Mb,所以我試圖清理一些東西。

其中一個主要障礙是每個頁面都包含jQuery UI庫,但我不認爲它完全被使用。它絕對沒有在主頁和大多數頁面中使用,所以我只想包括必要的地方。

我對jQuery並不是很有經驗,我更像是一個原型人,所以我很好奇。有什麼我可以搜索,讓我知道在哪裏使用jQuery UI?
我在找什麼是「共同串」,組件名稱等

例如,如果這是Scriptaculous的,我會尋找像「可拖動」,「效果」等 任何建議對於jQuery UI?

(當然,如果你能想到的去除不不破壞一切使用它的頁面標籤的更強大的方式,我喜歡聽到吧)

謝謝! 丹尼爾

+3

如果您發送適當的緩存標頭或使用CDN(例如適當執行緩存標頭的Google),則客戶端不會每載入一頁都下載一次。情況並非如此嗎?如果不是這樣,你應該解決一個單獨的問題,重新下載靜態內容並不好。 – 2010-06-11 00:47:23

+0

我也在解決這個問題,尼克,但首頁的首頁仍然沒有被徵稅,我們也因此收到了大帶寬問題。 – 2010-06-11 13:30:41

回答

10

jQuery UI有一個標準的命名約定,you can view a full list of widgets/effects here。與該列表相比,您主要在尋找相應的方法:

然而,這是一個很大的但是,如果你的主要目標是降低頁面的有效載荷大小,這應該沒有影響。你的用戶不應該下載這個每頁加載,it should be cached on the client as determined by cache headers,另外your scripts should be minified (already provided version when you download it) and delivered gzipped

此外,如果它是一個選項,我會考慮using a CDN for both jQuery and jQuery UIthe stylesheets as well,如果您使用的是默認主題之一。

+0

尼克,感謝您的回答。我現在的主要問題是,您第一次訪問該網站時,會得到一個188kb的文件(它已經被縮小了,而不是gzipped,我正在處理對於Google的AJAX託管,我也嘗試過,但這是Arg中的服務器entina爲阿根廷觀衆。相信與否(我幾乎不能),當我們沒有超載時,JS文件比我們的服務器加載得更快。我可能仍會將其移到Google的底部並向Google索要,但如果我可以將其完全移除,則會更好。謝謝! – 2010-06-11 13:34:33

+0

@Daniel - 需要記住的一點是,谷歌的地理位置平衡,您需要從該地區的計算機進行測試,而不是遠程測試,因爲您從不同的CDN節點進行加載。隨着更多的人鏈接到谷歌的CDN,也有用戶*已經*緩存文件的機會:) – 2010-06-11 13:37:00

+0

我從阿根廷測試:-)我也知道「人們可以讓它緩存已經」的效果,但我'我不確定已經發生了多少事情。你有關於這種用途有多廣泛的數字嗎?也就是說,即使來自其他人的快速服務器,我仍然希望消除一個無用的(而且很重)文件。 – 2010-06-11 16:23:16

-1

圖書館真的只應佔頁面大小的19k。

但你可以搜索$(」或$。因爲大多數,如果不是全部,jQuery的調用以$開頭。

+0

或搜索jQuery(如果代碼庫使用該代碼而不是$('以避免任何可能的命名衝突。 – Chad 2010-06-11 01:04:39

+0

@Chad,不知道這是什麼問題。我想他想找到jQuery的使用位置。包括在母版頁級別,那麼你只會在那裏找到「jQuery」,需要搜索特定的引用,$是一個相當不錯的參考。 – griegs 2010-06-11 01:13:57

+5

@griegs - 我不認爲你們看過這個問題:)他想刪除** jQuery UI **,而不是jQuery核心 – 2010-06-11 01:15:48

0

我建議你做一個搜索$(document).ready或試圖找出等效的代碼庫用來檢查DOM是否準備好與jquery進行交互,因爲UI添加需要DOM,所有的調用都將在這些函數中 - 你可以看到它們發生的位置,你可以檢查它們是否有任何共同點interactions or widgets

+0

一個網站可能沒有對'$(document).ready'的引用,這個網站可能沒有引用'$(document).ready',或'jQuery(document)',或者'something(document)',或者'$(function(){'不包含'document'等等)......有許多捷徑,其中沒有一個是特定於jQuery UI的。刪除jQuery用戶界面,而不是jQuery :) – 2010-06-11 00:59:11

3

我的建議是查看jQuery UI演示頁面 - http://jqueryui.com/demos/ - 並查看每個演示,並從每個演示中搜索主要的一個或兩個關鍵字,就像您可能爲Scriptaculous做的那樣。祝你好運。