2009-08-18 33 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服务。

一个额外的数据库请求和它在用户期望的时候暗示的延迟没有什么错误。如果有人点击一个网页项目,他们会好起来的,延迟时间不到半秒,如果你足够好,只是说“请等待”,表示明显的延迟是正常。