浅谈网站优化
...
Bing
...
ASP.NET
...
1
/1435
...
2 years ago
(先扯些题外话,嘿嘿,别打我啊,没兴趣的人可以直接跳转到第三段)
好久没更新这个Blog了,看来人气也减少不少啊,虽然忙,更新慢,但同时也是因为打开速度慢的缘故吧?当时只沉溺于Atlas中,现在终于看清了真面目,有兴趣的人可以看看前一篇文章的。最近的一个项目平台“ChinaWebCat”快诞生了,我花了足足快两个月的时间来考虑其所有问题,包括效率问题,用户体验问题,视觉效果问题……,为了解决效率问题,我还特意研究了ViewState,Ajax,开发了自己的一个比较小的Ajax框架用来解决Atlas庞大而低效率的弊病。同时从ViewState下手,全面优化整个网站,这个平台将是我毕生精力(呵呵,应该是不前为止吧),结合优秀的设计理念和模式,在加上高效的Repter数据管理、无刷新的Ajax技术、完美的用户体验和完善的后台数据管理系统(采用的是SQLServer2005),这个将会成为我的得意之作,相信这个也将一改传统的网页浏览模式,虽然刚开始可能不习惯,但是我敢肯定,习惯后就会发现自己是多么的喜欢它,并对其他所有的网站嗤之以鼻。
两个月下来,在技术上又有了一个天壤之别的感觉,于是回过头来看看这个Blog,两个月前还自认为是一个完美的Blog系统,现在在我看来真的是千疮百孔,存在着相当多问题,先不说布局混乱、效率低下,还有很多很不成熟的想法和理念,都让我在更新中火大的要命。本想等这个ChinaWebCat这样一个平台完全开发好后再来重新完善这个Blog的,不过看着自己的blog的人气大减,心理也不免有点不爽,尤其是访问速度问题,这个解决不了,别想有多少人气了。于是乘今晚有空,将所有页面优化了一下,
您如果上次来过,这次应该能很明显的感觉到速度提高了不少,当然这仅仅只是一个开始,页面优化的也不够好,还有很多的要加入进来。在下面的更改中首先将全面优化所有的页面,然后再全面优化所有代码,重新设计整个页面,让它变得更专业,更充满生机;然后再加入Flex留言本自己还一直说要发布FlexBlog呢,里面有些小问题阻碍了继续的布局,不过开发一个留言本,相信Flex还是有足够的优势的),个人介绍页面和用户注册页面,还有很多的别的功能,将随着
ChinaWebCat的推出一块推出,相信到时候您将有一个全新的体验。同时欢迎大家到时候帮忙测试啊……
(正题开始)
看看上面那篇“Atlas六大罪状”,看的人似乎很少啊,要不就是Atlas的气焰太高了,人们都只顾着学习了,而没有考虑Atlas的弊端,要不就是本人名声太小,太微不足道,以致无法吸引人们的注意,当然还可能和我网站的访问速度有些关系。开发一个大型系统的时候,最为重要的一点就是效率问题,任何一个大型网站,如果无法在效率上达到一个欣喜的程度,那么它将被客户所抛弃。
如今大部分的BBS可以看到基本上都是PHP的,少量是ASP的,基本上就很少见到是使用ASP.NET的,为什么?PHP成熟,模板相当多,再加上属于开源,自然能得到相当多的人的支持和拥护。ASP在国内起步的比较早,当时还没有ASP.NET呢,习惯使用ASP之后,很难跳转到ASP.NET,同时系统根本在于稳定,如果开发新的系统,却造成不稳定,那么还不如不开发呢,当然这只是针对求稳的企业而言,就我个人而言,任何东西,
哪怕能在效率上提高一点,就有学习的必要;哪怕能在维护成本上降低一点,就有研究的必要;哪怕能在用户体验方面提高一点,就有改善的必要。所有的这些都称之为网站优化,我个人来说很喜欢ASP.NET的,ASP各个方向上的不良,已经没有接受的必要了,PHP方面虽然有着大量的模板用来提高开发效率,但是已经不能从根本上有所改变,也意味着没法创新了,
而ASP.NET却有着个方面的优势,良好的DE(Develop Enviroment开发环境,指VS2005)再加上SQLServer2005和AD0.NET2.0,完美的融合Ajax技术,和强悍的C#语言,相信是无法匹敌的。但是问题也有,为什么使用ASP.NET的企业胜少? 首先,出来的晚,再一个效率不够高,突出表现在发送一个页面后有着很明显的停顿。那么这些问题其实都不是什么不能解决的问题,关键是没能深入,从根本上优化页面。如何优化页面?从以下几个方面考虑:
- 编写符合标准的XHTML代码。别看人人都在使用HTML,人人都会网页制作,拖动几个图标就可以了,但是很少有开发软件能生成标准的HTML代码(我个人觉得现在的HTML代码编辑软件最后输出网页的时候应该自动优化网页,使其符合标准)。既然是要编写符合标准的XHTML,那么首先要熟悉这个标准,然后要自己手动编写代码,这样才能编写出合格的代码,提高访问速度和搜索。
- 最好将所有各格式和布局都使用CSS,这个不仅能提高网站的代码清晰度,同时能很大程度提高搜索引擎的搜索速度,你的排名也自然向前了,并将所有CSS代码写在一块,这样能提高下载速度。
- 将javascript代码和Html代码分离,其效果和CSS与Html分离一样。将所有的javascript代码写在一块,这样方便调用,能提高下载速度,并尽你可能优化javascript代码,javascript代码不在多,而在简。
- 优化你网站上的所有图片,很多时候我们只需要讲图片的格式改一下,例如将.jpg改称.gif,那么图片的大小将减少相当多,对于图片清晰度要求不打情况下,即使有要求,我们也需要适当减杀一下图片的大小。我们希望用户在打开网站的时候,所有东西一瞬间就能下载下来。
- 将所有的可能重复利用到的控件编写成用户控件,这样能提高开发速度,同时减少代码的编写量,将减低维护成本。
- 全面考虑您网页上的任何一个ASP.NET控件,看看它到底是否应该使用ViewState,如果这个做到了,网站的信息回发将大大减少,网站的访问速度也随之会有着数量级别上的提高,当然这个需要有一定基础的人来使用。
- 使用Theme(主题),这个便于您从全局上控制您的布局,极大程度上优化您的CSS代码。
- 使用Master(母板),这个利于您从全局上控制您的布局,并减少相当程度的代码编写。
- 不要使用Repeater控件之外的任何数据控件(GridView除外,批处理数据的时候需要它),因为Repeater控件着实是太高效了,并且任何其它数据邦定的控件的功能都能使用良好的Repeater设计来搞定,同时你能很好的控制它的ViewState,这样就能从根本上解决效率问题和ViewState问题。
- 善待Cookie。Cookie很多时候作为一种通用的数据用来在让不同的语言交换数据。如果使用的好,将减少很多不必要的代码,并能很好结合许多技术。
- 必要使用Session来暂时保存数据,这样能很好的处理一些排序的问题,能很大程度上提高网站的运行速度。尤其是当遇到需要分页和排序的时候,这个将减少数据库的链接,并且能提高用户体验。
- 使用Ajax。虽然我不太赞同使用Atlas,但是我非常赞同使用小型的Ajax,因为在很大程度上,Ajax能提高用户体验,并能较少网络传输量,没有刷新总是要让人感到舒适一些(在某些情况下)。对于Repeater和GridView,我的建议是使用MagicAjax,这个着实是太好用了,如果您可以的话,开发一个自己的Ajax框架也未尝不是不可。
- 格式良好、命名规范的后台代码。好的后台代码能够让自己读懂,也能让大家读懂,并适合修改,减低维护成本和扩充成本。
- 良好的设计模式。好的设计模式就像一栋楼的根基,根基打好了,就能盖很高的房子,即使要重建,也没必要将根基给移除。整修的时候也要方便的多,也能将楼房修的更高。
- 封装。任何功能独立的控件,请考虑将其封装起来,这样的好处是能在任何时候遇到相同的问题,就可以直接套用了,而不用再重新来一遍。能提高效率和开发速度,减少不必要的代码。
- 完善的后台数据库控制,使用存储过程完成数据的访问。存储过程能很大程度上提高数据访问的速度,并利于功能的扩充,结合好的设计模式,可以更加方便的修改功能,扩充功能。
- 最后一个,永无止尽的完善。任何一件事物都没有完美的说法,程序、效率、用户体验也没有止境,聪明的设计师从不追求完美,但从不停止追求。
好了,废话又是一大堆了,虽然我没有提出什么实质性的要修改的东西,但相信有过开发经验的人可能会有所收获,限于个人水平,可能还有很多关键的地方没有提及到,如果您还有什么好的意见,请给与回复,谢谢。
dataitem
...
7 months 10 days ago
你的Blog不错..我非常喜欢