优化站点首页性能的一些实践
公司目前在做一个小型的门户网站,首页显示的信息有四屏之多。对于首页的性能我一直想进行优化。查阅了一些资料 整体的想法就是静态页面+缓存,但是把这个想法放到当前项目中有些需要调整。我知道页面静态化是王道,但是由于本系统大部分信息更新频繁,而且首页上有很多是不好静态的东西(比如:公告,用户登陆等模块),所以我做出了一个这样的方案来优化性能:
1.首页全部以控件形式来放置各个模块。
2.js后置到</body>之前。
3.首页的新闻及一些数据信息的读取 因为读取数据较多。我使用数据库+XML+数据缓存的形式来配置:
1.把首页新闻显示的条数使用XML来存储(按新闻栏目分类来创建 比较少的可以多个模块放于一个XML文件中,分成多个XML文件来存储)。
2.在Application_Start中初始化XML数据,从数据库中按需求读取数据到XML中。
3.访问首页时,先看缓存有没有要读取的信息,如果没有,那么读取XML把数据放入缓存中(以栏目ID为键),然后再读取到首页。
4.当新闻进行更新,删除,添加,审核等操作,可以进行单条信息或更新整个XML文档(这里可以看到分多个XML文件的作用,但是也不能太多了 3~7之间就可以了) 清空需要更新栏目的缓存。
4.首页的新闻显示全部通过生成HTML字符的方式来显示(即在页面上使用<%=var%>的方式来做,以便减少页面的ViewState,我具体不知道这种做法是否真的能够起到性能上的优化)。
总结以上所做的可以得到这样几个优化的方面:
A.减少数据库的访问次数及数据库的连接
B.减少数据库的查询所消耗时间和性能
C.js后置 这个主要是让页面加载快点 先加载页面主体部分。
D.利用缓存机制可以减少页面访问XML次数,这样就直接能够从内存中取出数据
申明:虽然本人在博客园潜伏很久了,但是这篇随笔是本人第一篇帖子,文字和语言表达方面有诸多的问题,请谅解。请不要拍砖。如果有更好的建议,希望大家一起讨论。
------------------------------------------------------------------------------------------------------------------------------------------------------------
更正下 应用程序缓存的生命周期和应用程序生命周期相同 不容易丢失,那么这篇文章就没有什么价值了
在asp.net2.0中增加,当数据库中的数据发生变化时,就会强制清除缓存。那么这种设计就是一种过时且不好的设计.....
这里的XML作为中间介质 反而是一种画蛇添足了。
浙公网安备 33010602011771号