文档章节

【代码优化】如何提高网页加载速度

_夜枫
 _夜枫
发布于 2017/07/06 14:28
字数 2247
阅读 3
收藏 0

原文链接

 

 

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、尽量少使用样式工具为我们生成的页面样式代码,自己动手把样式写在样式文件里。尽量写得通用些。

8、页面缓存

在大型的门户网站都用到了缓存技术,它是以空间换时间的技术。

缓存主要是为了提高数据的读取速度。因为服务器和应用客户端之间存在着流量的瓶颈,所以读取大容量数据时,使用缓存来直接为客户端服务,可以减少客户端与服务器端的数据交互,从而大大提高二次页面的访问速度的程序的效率。

9、配置网站的实体标签:

 这个Etag不是给用户用的,而是给浏览器缓存用的。Etag是服务器告诉浏览器缓存,缓存中的内容是否已经发生变化的一种机制。通过Etag,浏览器就可以知道现在的缓存中的内容是不是最新的,需不需要重新从服务器上重新下载。

10、使用CDN技术。

我们上网下载东西的时候经常会看见什么“南方服务器”、“北方服务器”的就是用到了CDN技术来提高下载速度与稳定性。

CDN的全称是Content Delivery Network,即内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。其目的是使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度(来自百度百科)。

11.使用Gzip压缩文档:

 GZIP编码是用来改进网页性能的方法,不仅可以减小存储空间,还可以减少传输所需的时间。将网站中的文件使用Gzip压缩后,可以显著的增加网页加载速度,同时也可以降低网站的带宽流量消耗。

12.样式表文件放在外部调用:

 把页面中需要用到的javascript和CSS样式表文件放在另外的文件夹中,这样一来在打开网站其它页面时就会缓存这些调用的文件,从而加快网站页面的加载速度。

13.给javascript文件减肥:

 这个方法不同于gzip压缩功能,缩小JavaScript文档有很多方法,比如去除不必要的空格等其他标签等。减少脚本文件后可以显著的提高网页的访问速度。

14.图片使用height和width属性

 每个图片的height和width属性可以让浏览器在加载图片之前就知道图片的长和宽,并预留出指定的长宽待图片加载后显示。如果没有这两个属性,浏览器还需要在读取图片成功后再处理一次页面布局样式,这无疑减慢了网页加载速度。所以在固定图片大小的情况下最好都使用上长和宽属性。

15.CSS文件压缩瘦身

DIV+CSS是现在流利的网页布局方式,DIV定义了元素,CSS控制显示效果。所以往往我们会把CSS写到另外一个或多个外部链接CSS文件中,并且CSS文件代码也有很多行。我们可以使用一些CSS压缩工具来删除CSS文件中不必要的多余内容,如重复定义样式、空格等来瘦身。可以尝试使用一下CleanCSS工具来压缩你的CSS文件。

16.整合CSS、JS文件减少HTTP请求次数

  现在的网页都有多个图片、CSS外部文件链接、Javascript外部脚本链接。所以当访问一个网页时浏览器需要多次向服务器请求这些文件。在请求和加载之间会产生不少的时间差。特别是一些网页上有多个小图片、图标按钮的网页,有多少图片,浏览器就需要请求多少将这些小文件,多将请求这些小图片文件将明显影响网页的加载速度。所以我们应该尽可能将小图片拼合一个PNG大图片上,然后通过坐标来显示图标。一次请求一个大图片比多次请求小图片速度要快不少。同样,最好将CSS和Javascript尽可能地整合到一个文件中都有助于加快网页载入速度。

17.目录地址后加上斜杠(/)

  如访客点击访问这样一个目录地址:http://www.zhen.com/dajiaguifan,去打开这个目录下的index.html文档。当服务器收到请求后它需要消耗一些时间来分析这是一个文件还是一个目录。但是如果我们在最后加上一个斜杠(/),服务器就知道你是在访问一个目录地址,然后就直接加载默认文档index.html或index.PHP就行了。这样服务器就不用花时间来分析这个地址,也起到了一定加速的作用。

 

 

原文链接

 

本文转载自:http://click.aliyun.com/m/25147/

共有 人打赏支持
_夜枫
粉丝 10
博文 506
码字总数 0
作品 0
朝阳
后端工程师
测试网页打开速度的18种专业方法

网站的加载速度是决定网站等级的重要因素,值得站长特别关注。原因很简单,没有人愿意为了打开一个网页而等老半天,换句话说,如果你的网站打开速度 很慢,将流失大量的访客,甚至出现多米诺...

james_laughing
2016/12/14
76
0
Google面向开发者推出网页加速工具Page Speed

北京时间6月5日消息,据国外媒体报道,Google周四面向开发者社区推出网页加速工具Page Speed。Page Speed此前为Google内部使用,是Google提高搜索引擎速度的重要工具。网页响应速度是使Googl...

老枪
2009/06/06
1K
0
前端怎么测试DNS解析速度?

网上说: 可以提高页面加载速度,我对页面优化这块不是很熟,如何确定这两句确实可以提高网页速度,有工具可以测试吗?

vcxiaohan
2016/08/03
158
0
如何提高网页的加载速度

加快网页的加载速度,无疑是提高用户体验的一个很好的方法。但是这里我们如何提高网页的加载速度呢?这里我总结了几点。 当然,这也是我第一天上班来的第一个任务。。。 1、使用良好的结构 ...

邪气小生
2016/07/14
87
0
影响网页渲染的关键

经常有站长、开发者、运维疑惑:为什么我们的后台服务器很快,但是用户要看网页里面的内容却需要很长时间?我们在上一篇文章《怪兽大作战: 解析网站打开慢的原因》中简单介绍了影响网站打开速...

OneAPM蓝海讯通
2015/06/25
201
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

kernel version does not match DSO version

错误信息: kernel version 384.11 does not match DSO version 384.130.0 原因是: cuda driver版本太低,不匹配DSO 简单有效的修复方法,升级nvidia driver, 步骤如下: 1. google seach ...

刘小米
今天
0
0
maven坐标和依赖

一、maven坐标详解 <groupId>com.fgt.club</groupId><artifactId>club-common-service-facade</artifactId><version>3.0.0</version><packaging>jar</packaging> maven的坐标元素说......

老韭菜
今天
1
0
springmvc-servlet.xml配置表功能解释

问:<?xml version="1.0" encoding="UTF-8" ?> 答: xml version="1.0"表示是此xml文件的版本是1.0 encoding="UTF-8"表示此文件的编码方式是UTF-8 问:<!DOCTYPE beans PUBLIC "-//SPRING//......

隐士族隐逸
今天
1
0
基于TP5的微信的公众号获取登录用户信息

之前讲过微信的公众号自动登录的菜单配置,这次记录一下在TP5项目中获取自动登录的用户信息并存到数据库的操作 基本的流程为:微信设置自动登录的菜单—>访问的URL指定的函数里获取用户信息—...

月夜中徘徊
今天
0
0
youTrack

package jetbrains.teamsys.license.runtime; 计算lis package jetbrains.ring.license.reader; 验证lis 安装后先不要生成lis,要把相关文件进行替换 ring-license-checker-1.0.41.jar char......

max佩恩
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部