2009-08-18 40 views
1

我對jQuery的世界很陌生,可能在這裏問一個相當微不足道的問題。我很好奇社區視爲具有jQuery功能的數據綁定對象的最佳實踐。中繼器內的jQuery

作爲一個具體的例子,我目前創建了一個綁定到對象列表的中繼器。每個對象都具有諸如「鏈接」,「縮略圖」,「潛臺詞」等屬性。這是一個小型中繼器(任何時候都可以使用10個項目)。當用戶點擊「鏈接」時,頁面的單獨區域會更新以反映該對象。

到目前爲止我發現的方法包括:

  • 動態創建從C#代碼隱藏
  • 創建JSON服務響應鏈接請求,並返回對象必要的jQuery腳本被加載(一個額外的可能不必要的數據庫命中)
  • 到C#代碼隱藏(similar struct

我內動態地創建一個JS STRUCT猜測我在這種情況下避免JSON服務的主要原因是對象在從數據源返回後已經綁定過一次。我不確定是否需要另一個數據庫命中,但我願意接受任何和所有建議。

回答

1

從C#代碼隱藏動態創建必要的jQuery腳本可能是不必要的,因爲JQuery代碼不必更改。請記住,不引人注目的JS是jQuery的主要內容。

我想象中的單件JS會是這個樣子:

$('.link-class', '#repeater-id').click(function(){ 
    // Get the id of the link or the target using $(this).attr('id') 
    // Show a page section or call a service using the the discovered ID. 
}); 

可以使用的第一個評論拔出你需要確定你要顯示的數據的數據。

第二條評論可以是Ajax調用或div切換到頁面上的其他部分。如果這個數據很大,那麼我會傾向於使用Ajax。否則,我會保持它在頁面上,並打開或關閉它。

如果您認爲用戶會更傾向於點擊幾個鏈接,那麼即使頁面稍微重一點,我也會對非ajax選項進行更有利的加權。特別是如果用戶可能會返回到以前點擊的鏈接。

這有道理嗎?很高興進一步闡述...

+0

這是合理的,併爲點擊事件的優雅。只有一小部分信息被加載到頁面中,所以我沒有關於在初始加載時一次加載所有信息的問題。我確實有一個問題是附加在每個對象上的附加數據(即「Subtext」)。在itemdatabound事件中,item.Subtext很容易獲得,但我不確定如何附加附加信息。 – 2009-08-24 14:15:28

+0

這似乎是最好的路線,我添加了一個新的問題來解決自定義屬性片。我是Javascript的狂熱粉絲,無需生成(或者爲此生成的任何代碼) – 2009-08-24 16:32:29

+0

嗨,亞歷克西斯。謝謝你的勾號:)。有了subtext問題,我會將其輸出爲隱藏字段或隱藏的HTML樣式。然後創建一個可以在需要時找到的選擇器。可能類似於以前,var subText = $('input#subTextID'+ id,'#repeater-id')。val(); – 2009-08-25 05:26:00

0

我想這個列表有一些關於某些項目的基本細節,當你點擊一個項目時,你會看到關於該項目的更多數據。

根據渲染頁面的大小不同,我肯定會選擇一個(動態jQuery)或兩個(JSON服務)。如果我們正在談論10kb附近的差異,我會選擇使用動態jQuery,並且準備好所有數據。如果它遠遠超過使用JSON服務。

一個額外的數據庫請求和它在用戶期望的時候暗示的延遲沒有什麼錯誤。如果有人點擊一個網頁項目,他們會好起來的,延遲時間不到半秒,如果你足夠好,只是說「請等待」,表示明顯的延遲是正常。