asp.net控件与html标签

        在我刚开始学习asp.net的时候,基本上都是在使用asp.net控件,比如说HyperLink,TextBox这些控件,确实用着挺爽的,没有什么问题.
        不过后来在园子里转了转才知道,这样的做法未必科学,尤其是性能方面.这里要说到asp.net的机制了,我们把这些asp.net控件"输进去",然后经过处理,输出html标签,HyperLink在IE下的输出是<a href="http://www.sina.com.cn">新浪</a>类似这样的标签,当然,如果这个HyperLink如果有OnClick这样的服务器事件的话,你就会发现,输出来的html标签就会多一个onclick事件,内容是一个JS方法,类似于:<a href=http://www.sina.com.cn onclick="javascript:alert('abc');">新浪</a>这样的一个标签
        这里,服务器做了一个没有必要的事,那就是把HyperLink呈现为<a href=...></a>这样的标签,为什么说没必要做呢,应为如果我们在输入的时候不使用HyperLink控件,而是直接写HTML标签,那么服务器就省去了上面那一步,这样的话,很显然,服务器的压力减轻了,软件的性能得到了提升.
        有人会问,那怎样对这些标签进行编程呢,有这样几种方法,第一:使用JS操作该DOM元素,第二,在该标签上添加runat=server标记,然后在CS代码里通过id找到他,对他进行编程.
        但是真的是这样的吗,所谓有得必有失,确实,这样是提高了程序的性能,减轻了服务器的压力,但是,为什么微软要提供这么一套服务器控件呢,当然,像gridview这样的数据邦定控件,给数据邦定带来了相当大的方便,这里先不讨论,其实,像HyperLink,Pannel这样的服务器控件,有一个很重要的功能就是能够识别不同的客户端,然后根据不同的客户端呈现不同的标签.也许,<a href>这样的标签在IE,Opera,FireFox下面没有问题,但是未必可以在移动设备上能正确识别.
总结:
我个人觉得,如果客户使用的都是主流浏览器,那么我们可以采用直接写HTML标签的方法减轻服务器压力,但是如果客户比较庞杂,web应用程序要实现跨浏览器跨平台的话,服务器控件是个不错的选择,难得人家微软做出这么多优秀的asp.net控件.
我们项目小组的二期工程,我建议大家还是多使用HTML标签比较好       

posted @ 2007-09-22 14:19  Scott Xu(南方小鬼)  阅读(564)  评论(0编辑  收藏  举报
乘客