7.4 技术解惑
7.4.1 总结用户登录系统的设计流程
作为一个典型的Web站点,用户登录验证系统的运行原理如下。
(1)制作一个登录验证表单,获取表单中输入的数据。
(2)对获取的数据进行验证处理。如果数据非法,则输出提示,如果数据正确,则使用Cookie或Session存储,并进入登录系统。在必要时,设置可以使用Hidden进行隐藏处理。
上述过程的运行流程如图7-48所示。
图7-48 典型Web用户登录系统运行流程图
7.4.2 服务器控件与HTML控件的区别
HTML控件是静态的,运行于客户端,不能直接用于和后台进行交互。ASP.NET中的服务器控件是运行在服务器上的,直接封装了操作该控件的方法。其实ASP.NET的服务器控件是HTML控件的扩展。从语法格式上看,HTML控件加上“runat="server"”就是服务器控件。服务器控件可以直接在后台识别并进行代码书写,而HTML控件则不可以。
7.4.3 什么时候使用服务器控件,什么时候使用HTML控件
在ASP.NET开发中,控件无疑给开发人员带来了方便,大大提高了开发速度。但是ASP.NET开发就一定要用控件吗?回答是否定的。这需要根据实际情况来选择是否使用服务器控件。
首先,用不用服务器控件,先要看你制作的网站是什么性质的。如果是企业站、资讯站等类型的,由于要考虑SEO的优化等,因此,这样的网站前台建议少用或者不用服务器控件。因为服务器控件用多了,ASP.NET在将服务器控件转为HTML标签时会多出很多“input type="hidden"”的标签,也就是HTML隐藏文本框控件,这些内容影响网站的性能,而且大量的服务器控件会占用HTML的顶部内容等。
因此,对于基本是靠搜索引擎带来浏览量的网站,前台就要少用或者不用服务器控件。有的朋友就会说了,不用控件数据显示多麻烦。确实麻烦了一些,原来依托数据源控件,一个DataGridView之类的控件就可以解决的,现在需要自己来实现。但是,这些控件最终生成的HTML代码还是Div+Table的显示,因此使用Table来实现也未必就麻烦。同样的,可以在HTML代码中调用后台的方法,那么,我们就可以直接在HTML界面做好模板,在需要显示数据的地方直接调用后台的方法也可以达到数据显示的目的,这样的工作量不会比控件复杂多少。
如果网站是后台管理、OA系统、公司内部使用性质的,因为类似这样的系统只提供给与系统有关系的人使用,不必关心SEO、搜索引擎收录这些问题,所以,这样的网站就不需要太在意用不用服务器控件了,页面的功能怎么实现方便就怎么实现即可。
另外一些网页动态性较高,像需要根据某个值来决定显示多少个控件,如用户输入了5,则需要在窗体上显示5个Textbox控件,这样的要求就应该使用后台直接生成HTML标签的方法来实现,因为如果选用服务器控件,在开发过程可能反而会有更多的问题需要去解决。
诸如大型网站,如门户网、数据量大的论坛、社区网站等,应该避免使用服务器控件。因为这样的网站访问量大,已经对服务器产生较大的压力,如果还继续使用服务器控件,会给服务器增加更大的开销,这样会影响网站性能。因此,这类网站不仅要避免使用服务器控件,还要做好网站缓存机制,页面静态化等,减少服务端的压力。
综上所述,用不用服务器控件其实是没有什么硬性规定的,只不过需要结合网站的性质来选择一个更合适的方法。一个优秀的ASP.NET程序员不是只会依托控件这么简单,也不是什么控件都不用这么极端,而是会根据实际需要,选择一个合适的实现方法实现想要的结果。
共有条评论 网友评论