桥梁

网站打开速度慢优化技巧

2020-09-28 14:49:55

网页打开速度慢原因:

1.服务器配置很low。

2.网络不正常。

3.浏览器问题。

4.网站图片过大、flash较多。

5.网站程序问题:代码冗余、不简洁。

6.请求过多,访问量异常。

解决办法:

1.服务器配置很low,那就升级服务器,提高服务器的各种配置。

2.网络不稳定,网速有问题,对应检查各项网络硬件、软件设置,实在自己解决不了的打电话给运营商协助解决。

3.每当自己使用浏览器打开网站就显得很慢,那就是自己的问题,修复浏览器试试,或者换个浏览器,就能够正常访问网站。

4.图片过大的进行图片压缩,较少flash,整改网站,尽量将js防止底部。

5.使用CDN加速网站,优化网站程序、精简压缩代码,限制图片的宽高,优化CSS、合并CSS文件等。

6.升级数据库,升级主句并发数量。

seo

提高加载速度策略:

剥离静态资源请求到CDN

一般在主域名下的HTTP请求里都会携带大量Cookie信息,大4KB,每个域名下多50条;但如果仅仅访问js/css/jpeg等静态资源文件的话是不需要Cookie信息,所以可以将整个站点的静态资源放到一个专门的域名下,以求减小网络开销,也就是Cookiefreedomain;

多域名存储资源

浏览器在对同一个域名下的并发请求资源数量是有上限的(IE为8个,chrome为4-6个),一个完整的html页面需要加载的资源一般已经超过100个,所以为了缩短加载速度可以将下载资源分布在多个域名下(也不能太多,DNS查询也需要耗时);这样不仅可以增加资源加载的并发数,还可以实现静态资源CookieFree加载;

合并HTTP请求

加速网页加载不仅需要加快单个请求速度的同时,还需要减少总的请求个数,cssspirites可以将多张图片合并成一张图片,这样只需要一次请求,不同css展示图片上不同的位置;通过使用smartspirites命令在打包的时候讲图片合并成一张图片;

压缩请求资源

将js/css进行concat,minify和compress,终合并成一个大的js/css,然后使用gzip生成.gz格式的文件,只要在request里指定accept-encoding=gzip,deflate,则可以请求打包之后的.gz文件,极大降低http请求的个数和带宽的负载压力。基于Ant的构建打包里js/css的合并、混淆和压缩可以通过concat,closure实现,而gzip则需要clientbrowser和webserver同时约定一些规定。首先clientbrowser发送的request要写明accept-encoding=gzip,deflate,表示可以接受gzip的文件编码;然后webserver将js/css文件打包成跟源文件具有同样名字路径的gz后缀文件,并且在response里写明content-encoding=gzip,这样webserver响应请求的时候就可以返回gz文件,webbrowser也可以正确对gz文件进行解析。

合理利用浏览器cache

浏览器会将网页资源cache到客户端本地,然后通过HTTPrequestheader里的cache-control,expires等来控制cache的生命周期。

expires:web服务器响应的头字段,表示浏览器在某个时间点(绝对时间点,存在服务器时区不匹配问题)之前可以使用该资源的缓存;但expires字段是HTTP1.0的定义,现在浏览器一般默认为HTTP1.1,所以它的作用基本可以忽略。(另一个基本可以忽略的是pragma:no-cache,由于其属于html文件内容的meta信息,所以仅有某些浏览器支持)

cache-control:用于替换expires字段,所以优先级一般高于expires字段,cache-control的值解释如下,max-age用的是当前时间的相对值(Cache-Control:max-age=30000)。

etag;属于HTTP1.1的特性,具有比last-modified更高的优先级,表示有webserver根据resource的path,size,lastmodifieddate进行hash后生成的值,可以判断文件在前一次响应之后是否有被修改。etag可以解决last-modified的几个问题,last-modified只能到秒级别,如果恰好resource在1秒内更新了,则clientbrowser不能根据last-modifed进行判断;如果文件仅仅是被touch,文件内容没有改变,last-modified却改变了。

If-None-Match:在clientbrowser判断resourcecache已经expire后,如果之前的response里有etag字段,则重新发出请求并带上该字段,webserver收到请求后对比request里的etag和webserver上resource新生成的etag值,如果不相等,则响应整个resource并设置statuscode=200,否则直接返回statuscode=304。

Last-Modified:表示webserver告诉clientbrowser当前resource的近修改时间。

If-Modified-Since:在clientbrowser判断resourcecache已经expire后,如果之前的response里有Last-Modified字段的话,则重新发出请求并带上该字段,webserver在收到请求后对比request里的Last-Modified和webserver上resource的实际的修改时间,如果实际修改时间较新,则响应整个resource并设置statuscode=200,否则直接返回statuscode=304。

使用静态页面

将内容变动频次低的页面做成静态页面(相对于JSP等内容需要实时生成的动态页面),并缓存到webserver内存或者CDN上,常见的技术有freemarker;JSP页面需要依赖appserver提供的容器环境,而freemarker可以完全脱离appserver(Jetty),简单的webserver(Nginx)就可以满足访问需求。

直接使用freemarker合并ftl文件和data,并生成html文件,html文件可以直接放置到CDN或者webserver上供用户访问。

联系我们contact us

联系人:王经理 手机:18563790735

电话:400-094-0531  0531-67883910

邮箱:kefu@tgeye.cn

地址:济南市历下区泉城路268号永安大厦708室

Copyright © 山东嵊灿网络科技有限公司 All rights reserved 备案号:鲁ICP备13029154号 主要从事于济南网站建设,seo,外贸推广, 欢迎来电咨询! 服务支持:嵊灿科技