2010-12-17 97 views
0

我最近重新制作了新的twitter ui(滑動窗格),並且我爲它創建了一個相當類似的(如果不是稍好的話)功能。最近我沒有遇到任何問題,直到我嘗試重構時出現了一些錯誤。也就是說,我正處於決定我是否應該重構我的代碼並使用OOP的十字路口。我應該將jquery腳本轉換爲對象還是讓它成爲對象?

對於我所做的一點背景,我有一個具有可擴展類的項目列表。在他們的內部,我有一個名爲「.inner」的div,在其中我將右側的數據放在那裏。然後我有一個$('。expandable')單擊函數,它可以激活右窗格並克隆.inner div的所有內容,並將其放在右窗格中。

當頁面加載時,我創建了一些隱藏在左側窗格下的類「.pane」的右側窗格。我可以根據需要繼續實現,但是我當時的想法是轉換每個這些巨大的點擊功能等,然後創建一個Pane對象,它具有動畫,隱藏,自身等所有方法。

問題這是我不確定這是否是一個好主意,特別是如果有很多窗格。將我的窗格變成對象會增加還是減少加載時間/功能?點擊事件綁定到類($('。expandable')。click())比expandable是一個Pane對象的方法更快嗎?那麼如果有30個窗格/可擴展的東西呢?

回答

0

取決於你想要做什麼,你可以使用選擇器引擎和對象,或者我所做的是將我的JQuery插件表示爲具有狀態的對象,但作爲普通插件可以在「外部」世界中看到。

我還將實用功能(如客戶端緩存,解析器等)放入對象中,因爲這些功能與瀏覽器交互無關,並且更多地涉及可重複使用的內部api。

但它真的歸結爲你想如何編碼。 JQuery插件庫和API非常豐富,但如果你發現你需要多一點的東西,那麼對象就是要走的路。

0

我不確定,但是當我用JavaScript來做腳本時,我曾經使用過jQuery,因爲這是組織內存和對象的人。我還必須說,在我的更多案例中(當我使用jQuery在地圖上加載超過1000個點時),Firefox有很好的迴應。問題出在Internet Explorer中。

我推薦給你,盡你所能,在JavaScript中使用OOP。如果它是可行的,用jQuery(有一個偉大的社區來幫助)。此外,你必須看到IE黑客在這個'導航器'中改進jQuery。

您也可以查看此網頁:http://plugins.jquery.com/。在那裏,你可以找到很多插件來完成jQuery最重要和常見的功能。