网页打开的速度对于网站的体验是非常重要的,每个访客都希望能够秒打开网页,那么怎么才能提升网页的访问速度下面小编来告诉大家几个实际方法。
一. 减少对服务器的文件请求
HTTP请求属于“请求”-“应答”形式的短连接,每一个独立的资源我们都会向服务器发去一份get请求,再等服务端将我们需要的文件传回来。每一次资源的请求都实实在在地耗费了一次“连接-等待-接收”的时间(当然将http请求设为keep-alive长连接状态可以减少“连接”的次数和时间),如果我们能有效减少对服务器文件的请求次数,便意味着我们可以从这块省下一些页面等待时间,顺便减少服务器的负担。
解决方案:
1. 使用css sprite技术合并多个图片为单个图片文件,实际使用时通过background-po sition来定位背景位置,推荐阅读:CSS Sprites:图片整合技术;
2. 合并多个css样式文件为单个样式文件,合并多个脚本为单个脚本。
3.将小块的css、js代码段直接写在页面上,而非在页面引入独立的样式/脚本文件。相信有的朋友看惯了“保持结构 (标记)、表现 (样式)、行为 (脚本)三者分离”的规范,对此观点可能有些意见。只能说规范不是教条,适合自己的才是硬道理。直接把小段的、复用率低的样式/脚本直接写于页面上带来的利还是大于弊的(弊可能也就是增大了页面代码量、不那么好维护了点)。
二. 减少文件大小
文件太大(特别是图片)导致加载时间较长,往往都是影响页面加载体验的头号大敌,要尽可能减少请求文件的大小:
1. 压缩样式/脚本文件,可以使用gulp或者grunt来实现,它们均能很好地减少css/js文件的大小(对于js还能起到混淆变量、函数名的作用);推荐!在线js、CSS、网页压缩工具
2. 针对性选择图片格式,在无透明背景需求下,对于颜色较单一、无色彩渐变的图片仅使用gif格式,对于jpg图片也可按照其清晰度要求,在导出jpg的时候选择对应的“品质”进行优化,还有背景单一的图片尝试使用PNG格式能大大减小图片大小;
三. 延迟请求、异步加载脚本
在各主流浏览器下,我们的脚本文件跟随其它资源文件一样都是异步下载的,但这里存在一个问题——比如FireFox下载好脚本后的一小段时间内会有“执行阻塞”的情况发生,也就是说浏览器下载好脚本后执行它的这段时间里,浏览器的其它行为被阻塞,导致页面上的其它资源都是无法被请求和下载的。
如果你页面里存在js代码执行时间过长的情况,那么用户就会明显感觉到页面的延迟。解决这个问题有一个简单的方法——将脚本请求标签放置到结束标签前,使得页面上的脚本成为最后被请求的资源,自然也不会阻塞其它页面资源的请求事件了。
四. 延迟请求首屏外的文件
先解释下,“首屏”指的是页面初始化时候的页面内容显示区域,也就是页面一加载,用户就首先看到的区域。
比如像京东啊淘宝啊,对于需要滚动页面才能看到的图片内容,都做了类似lazyload的处理,这些无非都是走了代理模式的理念,但的确给用户一个错觉——这个页面更快地加载完了,因为我很快就看到了屏幕上的内容(即使我还没下拉滚动条,而页面后方的文件其实还没真正加载呢)。