如果一个页面有多个 Reapter 控件,每个都要从数据库中提取几条数据显示出来。
当浏览器访问此页面的时候,这些 Reapter 是一个一个加载的吗?
即,一个加载完毕后,又加载另一个;从页导致前台多次访问数据库。不知道 Reapter 服务器控件是怎样工作的,
非常感谢您的帮助!新年快乐!

解决方案 »

  1.   

    建议看看 msdn 的服务端绑定控件生命周期看你数据是怎么取的,如果调用了多次类似 Adapter.Fill 的代码,那么就是多次访问数据库。Repeater.DataBind() 是实际将数据Render出Html的地方。Repeater 只接受数据,不负责取数据,所以访问多少次DB,和你取数据的代码有关系和Repeater自己无关。
      

  2.   

    是一个个加载的,你可以Google下页面生命周期方面的知识
    http://developer.51cto.com/art/200908/141235.htm
      

  3.   

    什么是“前台”?页面生成html的过程整个在web服务器上执行,然后在Render过程中输出html给浏览器,浏览器接收到这个字符串之后解析它。你所说的“前台”如果是说的浏览器端,那么是完全错误的。整个产生html过程中,浏览器都在“发呆”地等待服务器响应请求呢。
      

  4.   

    如果要高性能异步加载数据,那么完全跟asp.net变成无关。你使用类似ajax、RIA的方式设计网页,而服务器端无所谓是什么了,服务器端编程已经根本不涉及界面编程的概念了。不过对于稍微复杂一些的企业应用来说,如果你不使用silverlight等高级的开发平台,如果使用javascript(例如jQuery等),其实想达到传统的使用asp.net控件的开发效率和可靠扩展维护,是很难得。不仅仅因为很大的javascript工程程序很快就变得异常混乱不堪,而且是因为这些javascript工具中封装好的现成的企业信息系统所需要的界面开发工具实在是太少了、太不实用了。那些号称既不需要使用现成的asp.net控件,也不需要封装javascript框架插件代码为通用企业系统界面控件的人,往往整天在那里研究低级的ajax概念和简单范例程序,而做不出来真正复杂一些的企业应用程序。
      

  5.   

    所以我想你这个问题,你自己也不必太纠结。对于企业web应用开发,这个异步加载的概念虽然重要,但是对于很多人来说其结论没有真正的实用价值。等你精通一种完全跟asp.net毫无关系的、强大的前端开发方式,再来考虑异步加载数据列表的问题,你的开发平台本身就是很自然地异步加载数据列表的,而再也不用去管asp.net的什么控件。