数据库优化、SQL语句优化、缓存、HTML和服务控件、VIEWSTATE、静态页面技术、AJAX技术、WEB2.0
private DataTable GetParentList()
{
if (Cache["ParentList"] != null) return ((DataSet)(Cache["ParentList"])).Tables[0].Copy();
DataSet ds = New DataSet();
double bannerDuration = 设定cache时间;
Cache.Insert("ParentList", ds, null, DateTime.Now.AddMinutes(bannerDuration), TimeSpan.Zero);
return ds.Tables[0].Copy();
}
2.Asp.net优化指南
尽管现在的网速都飞速发展,以前打开一个满屏广告的网站可能需要几分钟。但现在就算代码再垃圾,广告漫天飞的网页,也可以在十几秒之内打开完成。但是为什么Google的首页到现在还是保持这么简洁?速度!还是为了速度!页面上太多的代码,后台多余的处理程序都会大大延长网页的载入速度,增加服务器的投资负担,还有以后的开发难度......总之,保持一个网站的代码优越性,访问的速度,都是一个成功网站的支柱。
本人总结了好几个方面的优化,希望对大家有点帮助。
1.用Repeater和ListView来代替其他展示数据的控件。
也许是中国的教材影响,大多数人都喜欢按照课本上的例子来使用Gridview,Datalist,Formview等控件来展示数据。也许,这些控件提供了简便的方式来展示,修改数据,但背后却是增加了很多垃圾的代码,不但影响速度,而且因为这些控件生成的代码是不能控制的,(例如Gridview自动生成的是table的代码,Formview生成后直接是一个table来包括起来,无论你在里面的自定义代码是什么),这直接导致了布局的困难.....
而Repeater则没有这个问题,基本上是你控制它生成的代码。譬如要在<ul></ul>列表里面不断展示<li>的数据,只需要
<ul>
<asp:Repeater xxx>
<ItemTemplate>
<li><a href="<%# "Name.aspx?ID="+Eval("ID") %>"><%# Eval("Name") %></a></li>
</ItemTemplate>
</asp:Repeater>
</ul>
这样就可以了...而同样Listview也可以做到这一点,不过功能就强大很多了。Listview不但有专门的分页控件,而且还提供了获取某一项的数据,用来修改删除增加等...通常后台通过控件的CommandName,和CommandArgument的属性,配合Container.DisplayIndex来获得数据,获得以后要干什么就随你了....
2.删除不必要的DataKeyNames
尽管要后台获得数据的话,需要DataKeyNames来配合,但是每增加一个DataKeyNames的项,都会大大增大ViewState的代码量(后面有议论)...所以,如果后台你不需要用到某一个数据项的话,就尽量少写上去...
3.把多次使用的重复代码写入一个类里面调用
如果你的代码中有不断重复使用的代码,那就写成一个公共的方法,这对缩小代码很有帮助。
4.放弃Asp.net的Ajax功能
Ajax的确是一个好东西,它提供了创新的强大的无比优越功能,让我们在网页的效果,和效率上更上一层楼。但是使用Asp.net自带的所谓Ajax,实在是一个灾难!它会把一大堆你没有用到的代码写进你的网页里面,特别是那些websource.axd文件,加起来有300-500KB,甚至更多。所以想使用UpdatePanel,或许Ajaxcontroltoolkit那些东西的话,还是放弃的好.....老老实实地学一下Ajax,自己编写js出来。iGtan.com这里用了不少Ajax的地方,但是相关的Ajax代码也不过2-3Kb左右....调用起来非常方便。
5.放弃Asp.net的验证功能
和Ajax的情况相同,Asp.net虽然提供了方便的验证功能,但是也载入不少websource.axd的文件....如果学习一下js里面的正则表达式,验证只需要几行代码就可以实现了。
6.非必要的时候,今年少用Asp的控件
虽然Asp的控件提供不少方便的功能,但实际上,他生成的还是Html的代码,只需要在Html代码后加上runat=server,就可以实现对该字段的控制了,譬如asp:Label,可以用<label id="xx" runat=server></label>,asp:LinkButton,可以用<a runat=server></a>来代替,基本上都可以实现asp控件所能实现的功能...
7.后台减少代码的输出
譬如你要后台输出:abc.InnerHtml="用户名:"+username.xx(读取出来的数据)
可以改成前台<h2>用户名:<span id="abc" runat="server"></span></h2>,后台abc.InnerHtml=username.xx
这样可以减少服务器的负担
8.一次引用
通常一个方法里面要用到某些相同的数据,譬如Request.QueryString["ID"],但是每写一个这个代码,程序就要执行多一次获取ID的方法。所以最好在程序之前先string ID=Request.QueryString["ID"];然后接下来只需要引用”ID“就可以了。
9.缩进代码
虽然编写代码的时候,一层一层的代码很好看,很容易管理,但是生成网页后还是把这些多余的空格都加上去了。所以把你的代码全部缩到靠左边:
<xxx>xxxx</xxx>
<xx>xx</xx>
<xxxx>xxx</xxxx>
能节省不少代码。
10.消灭ViewState!
ViewState是asp的一大特色,他可以保存控件的状态,以便在页面回传的时候,不会把你刚填写好的数据清空。但是它会在页面增加一大堆一大堆的无关的代码,虽然完全消灭Viewstate有点困难,但以下几个方法可以缩小viewstate的代码量
--1.不需要保存输入状态的页面设置:EnableViewState="false"
--2.不需要保存控件的数据的控件里面设置:EnableViewState="false"
--3.尽量用Repeater来展示数据,如果真的需要才用Listview
--4.减少用asp的控件
--5.静态固定的内容,用静态网页来展示
11.用一个CSS和JS文件
如果网站的框架都差不多,而且用户都是集中在某几个页面,可以都共用一个CSS和JS文件,来减少读取文件的请求。
12.减少图片的读取
同样,多个请求会加重服务器的负担,所以减少(特别是用于网站界面上的)图片的读取请求,会大大加快网站的速度。如果某些图片都相类似的,可以都把他们放在一个图片里面,然后用CSS的background-position属性控制展示的区域
13.自己写JS
虽然现在有jQuery等不错的js库,可以提供强大的功能,但是里面仍然有不少你没有用到的代码要读取...所以最好的方法还是自己亲手写js文件。
14.编写便捷的JS功能
可以把某些很有用的功能都缩到一个方法里面,这对减少代码很有帮助,特别是
function $(ID)
{
return document.getElementById(ID);
}
非常有用和方便,是应该写js的人必写的方法。
15.压缩你的JS和CSS文件
网上有不少这样的工具,可以大大加快读取速度
16.非必要的代码,非必要工作,尽量利用JS来完成
如果要在页面生成某个按钮,某个连接,某些html代码的话,计算某些东西,作一些简单的处理,尽量用js来完成~这可以减小服务器的工作量。
17.Ajax
Ajax功能强大,配合js,可以精准控制在某地方展示更新数据,而不需要服务器再回传到服务器,然后再次生成页面,再发送...对服务器来说,Ajax可以减少很多不必要工作。
还有不少需要优化的地方,我这里只是介绍了部分,不过相信按照上面所提供的方法,已经可以让你的asp网站加快一个层次了~
某些更高级的优化以后再写吧~详细可以参考www.iGtan.com这个网站,基本上都作了以上的优化~
如何优化网站
最新推荐文章于 2024-11-16 21:54:37 发布