如何提高网页加载的速度
下面是我所理解的和网上搜索到的总结:
1、减少页面请求:
从WEB运行原理上讲,IIS请求是无状态的,在服务器端一直是连接和关闭的不断进行着,如果能减少服务器请求,总的时间将会减少。
之前我下载163邮箱的登陆页面的图片时发现,它们的只用到了一个图片来完成整个页面的所有图片,当时我就纳闷了,这跟平时做的网站不一样呀。然来这样做减少浏览器的请求次数,用httpwatch你会发现请求的总时间大大减少了。同样的想法,在做css样式,javascript代码的时候也要做到尽可能的放在一个文件下来减少WEB请求。
2、页面压缩技术,给我们JS,HTML代码进行瘦身。
Jquery 作为JS最轻量级的类库,它的原类库是242KB,压缩后的它竟只有91.6KB。 常见的压缩工具有Google Closure Compiler、YUI Compressor、JsPacker、gzip。我常用的是gzip,因为它的压缩率是最高的。用jdk压缩后它会把一些空格去掉,把我们很长的变量名换成换成很短的字母来代替。
3、样式、行为、结构分离。
当第一次访问页面的时候,用户就可以把CSS,JS代码下载下来,这样做虽然第一次使网页加载的速度变慢了,但后面的页面将快很多。当用户访问这个网站的其它的页面时,由于其它页面也引用了这个CSS样式和JS代码。浏览器发现它已经下载好了,下一次就可以不用下载了。这样就做到了一次下载,后续速度的效果。
4、使用存储过程
在运行存储过程前,数据库已对其进行了语法和句法分析,并给出了优化执行方案。这种已经编译好的过程可极大地改善SQL语句的性能。由于执行SQL语句的大部分工作已经完成,所以存储过程能以极快的速度执行。这种预编译的sql语句就可以直接执行而节省了很大一部分查询的时间。
5、一些细节:
把CSS样式放在头部,如果JS很多的话,把js代码放在尾部。这样做可以尽可能的先加载页面的DOM结构,然后才可以级用户体验。如果JS很多的大的话,页面都没加载完,何来用户体验之说呢。
6、适当的使用AJAX
现在的Ajax好像有点被神话了,好像网页只要Ajax了,那么就不存在效率问题了。其实这是一种误解。拙劣的使用Ajax不会让你的网页效率更高,反而会降低你的网页效率。Ajax的确是个好东西,但是请不要过分的神话它。使用Ajax的时候也要考虑上面的那些准则。
7、尽量少使用VS为我们提供的服务器控件的页面样式,自己动手把样式写在样式文件里。尽量写得通用些。
8、页面缓存
在大型的门户网站都用到了缓存技术,它是以空间换时间的技术。
缓存主要是为了提高数据的读取速度。因为服务器和应用客户端之间存在着流量的瓶颈,所以读取大容量数据时,使用缓存来直接为客户端服务,可以减少客户端与服务器端的数据交互,从而大大提高二次页面的访问速度的程序的效率。
还有很多加快页面速度的方法,比如:
网站服务器管理员方向的:
9、配置网站的实体标签:
这个Etag不是给用户用的,而是给浏览器缓存用的。Etag是服务器告诉浏览器缓存,缓存中的内容是否已经发生变化的一种机制。通过Etag,浏览器就可以知道现在的缓存中的内容是不是最新的,需不需要重新从服务器上重新下载。
10、使用CDN技术。
我们上网下载东西的时候经常会看见什么“南方服务器”、“北方服务器”的就是用到了CDN技术来提高下载速度与稳定性。
CDN的全称是Content Delivery Network,即内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。其目的是使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度(来自百度百科)。
服务器方面我也不是很了解,以上是我在学习的时候进行总结的一些问题,如有不完善的希望大家可以帮忙完善。