1.减少Http请求

   在一个页面中图片,CSS,JS可能N个,如果每个资源都去请求一次服务器的话,那么服务器就会为每个资源开一个线程来完成,这样的话对服务器的压力就很大了。所以解决的方法就是合并资源。

  图片合并:可以多个图片合并成一张图片,用偏移的方法来显示不同的图片(backgroup-position:x y;)

  CSS和JS合并:C#(MVC)用BundleConfig.cs来解决多个CSS和JS文件,只需要一次请求。(Global.asax里面要开启BundleTable.EnableOptimizations)

2.缓存

  可以将网页中频率使用比较高,但是更改比较少的资源进行缓存。像这些资源有Logo,JS,CSS...等等。我们可以在http请求中的Cache-control和Expires属性来进行设置它的缓存时间,来进行缓存这些资源。如果说对某个CSS进行缓存,但是我要更改了这个CSS文件怎么让浏览器使用我更改后的CSS文件呢?解决方法就是更改CSS文件名就可以。JS和logo等等这些都是一样的。如果有多个缓存文件都要更新,不要同时更新尽量一个一个的去更新。这样可以减少服务器压力。

  

3.压缩

  服务器可以对文本压缩,客户端进行解压。这样可以减少通信传输数量。因此像html,js,css文件可以启用Gzip压缩来进行传输。但是它还有一个弊端就是服务器需要压缩,客户端需要解压,所以就是对服务器和浏览器造成压力。如果说网络通信比较好的则不需要考虑这项来进行优化了。

  

4.css在前,JS在后

  就是在一个页面中尽量把css放在页面的前面,JS放在页面的后面。因为JS会造成阻塞,这样会阴影页面的渲染。我说的尽量不是一定要这样做,有时候我们需要JS解析页面的时候就不适合放在最后面了。

5.慎用Cookie

  因为cookie包含在每次请求和响应中,如果太大的Cookie数据的话会严重影响数据传输。所以那些数据需要用到cookie来存储自己一定要把握好,用不好会影响用户体验。建议像CSS,JS文件就不要用cookie存储,可以考虑用静态域名访问独立服务器。

6.CDN

  CDN(Content Distribute Network 内容分发网络)它其实就是一个缓存,它是将数据缓存到离用户最近的地方。如下图。可以看到客户端可以以最快的速度就可以获取到静态资源(也就网络访问第一跳)。所以CDN可以放一些访问比较频繁的资源,(如:图片,CSS,JS...等等)。比如淘宝海量图片就是CDN来解决的。

7.反向代理服务器

  代理服务器可以配置缓存来缓存静态资源。当用户第一次服务器就可以把静态资源缓存了代理服务器上。其它用户再次访问的时候就可以在代理服务器上获取资源了。反向代理服务器不仅仅是缓存资源,

  1.它还可以保证网站的安全的功能,因为所有访问都是必须要经过反向代理服务器。所以可以在反向代理服务建立一道屏障,从而减少网络攻击。(有一夫当关,万夫莫开的感觉)

  2.它还可以完成负载均衡的功能,通过负载均衡构建的应用集群可以提高系统总体处理能力,从而改善网站高并发情况下的性能。

  看到上面的图给我的感觉有点像AOP(面向切面编程:就是一个点控制多个面)。反向代理服务器就是一个点,集群服务器就是多个面。网站权限功能就是AOP来完成的,网站权限也是出于安全考虑。所以给我的感觉上面的图有点类似AOP工作原理

总结:如果你的网站不是唯一性的话(唯一性就是互联网中只有一个,如12306网站),那么就要考虑到网页的响应时间了。响应时间遵循2,5,8定律,也就是说2秒之内响应,用户体验较好。5秒之内响应,用户还可以接受。8秒钟之内,可能就会流失用户了。在这个竞争这么激烈的互联网中,如果你的网站用户体验不好的话,就会流失用户群了。

  (本人学识有限,文章如有误,愿见谅。希望能指出来,以免误人子弟了。^_^)

Web前端 优化方案的更多相关文章

  1. 关于大型网站技术演进的思考(二十一)--网站静态化处理—web前端优化—下【终篇】(13)

    本篇继续web前端优化的讨论,开始我先讲个我所知道的一个故事,有家大型的企业顺应时代发展的潮流开始投身于互联网行业了,它们为此专门设立了一个事业部,不过该企业把这个事业部里的人事成本,系统运维成本特别 ...

  2. [转] Web前端优化之 Server篇

    原文链接: http://lunax.info/archives/3093.html Web 前端优化最佳实践第二部分面向 Server .目前共计有 6 条实践规则.[注,这最多算技术笔记,查看最原 ...

  3. web前端优化-温故知新系列(1)

    有关web前端优化的博文,博客园中有许多网友的博客中都有介绍,而且详细.精准.楼主打算写这个博客,算是对自己一年工作来的一个总结和积累有些知识从别的地方拷贝过来的,但是都审查过. 引言: 1. 慢的页 ...

  4. 网站静态化处理—web前端优化—下【终篇】(13)

    网站静态化处理—web前端优化—下[终篇](13) 本篇继续web前端优化的讨论,开始我先讲个我所知道的一个故事,有家大型的企业顺应时代发展的潮流开始投身于互联网行业了,它们为此专门设立了一个事业部, ...

  5. 【转】关于大型网站技术演进的思考(二十一)--网站静态化处理—web前端优化—下【终篇】(13)

    本篇继续web前端优化的讨论,开始我先讲个我所知道的一个故事,有家大型的企业顺应时代发展的潮流开始投身于互联网行业了,它们为此专门设立了一个事业部,不过该企业把这个事业部里的人事成本,系统运维成本特别 ...

  6. 关于大型网站技术演进的思考(二十)--网站静态化处理—web前端优化—中(12)

    Web前端很多优化原则都是从如何提升网络通讯效率的角度提出的,但是这些原则使用的时候还是有很多陷阱在里面,如果我们不能深入理解这些优化原则背后所隐藏的技术原理,很有可能掉进这些陷阱里,最终没有达到最佳 ...

  7. 关于大型网站技术演进的思考(十九)--网站静态化处理—web前端优化—上(11)

    网站静态化处理这个系列马上就要结束了,今天我要讲讲本系列最后一个重要的主题web前端优化.在开始谈论本主题之前,我想问大家一个问题,网站静态化处理技术到底是应该归属于web服务端的技术范畴还是应该归属 ...

  8. Web前端优化最佳实践及工具集锦

    Web前端优化最佳实践及工具集锦 发表于2013-09-23 19:47| 21315次阅读| 来源Googe & Yahoo| 118 条评论| 作者王果 编译 Web优化Google雅虎P ...

  9. [转] Web 前端优化最佳实践之 Mobile(iPhone) 篇

    原文链接:http://dbanotes.net/web/best_practices_for_speeding_up_your_web_site_server_mobile.html Web 前端优 ...

随机推荐

  1. uva11400 Lighting System Design

    题目大意: 有一个照明系统需要用到n种灯,每种灯的电压为V,电源费用K,每个灯泡费用为C,需要该灯的数量为L.注意到,电压相同的灯泡只需要共享一个对应的电源即可,还有电压低的灯泡可以被电压高的灯泡替代 ...

  2. appium服务——封装生成可用端口

    一.判断端口是否可用 1.在windows中判断端口是否可用,使用dos命令"netstat -ano| findstr 8080".运行结果有如下两种 如果没有被占用,就是结果为 ...

  3. 从图(Graph)到图卷积(Graph Convolution):漫谈图神经网络模型 (二)

    本文属于图神经网络的系列文章,文章目录如下: 从图(Graph)到图卷积(Graph Convolution):漫谈图神经网络模型 (一) 从图(Graph)到图卷积(Graph Convolutio ...

  4. P5346 【XR-1】柯南家族

    题目地址:P5346 [XR-1]柯南家族 Q:官方题解会咕么? A:不会!(大雾 题解环节 首先,我们假设已经求出了 \(n\) 个人聪明程度的排名. \(op = 1\) 是可以 \(O(1)\) ...

  5. 第一个Three.js程序——加入相机

  6. BZOJ 4668: 冷战 并查集&&暴力LCA(雾)

    利用并查集按秩合并,保存每个点合并的时间: 求时间时,就一直跳u=fa[u],并记录路径上时间的最大值,代表最后一次合并的时间 #include<cstdio> #include<i ...

  7. Codeforces #564div2 E1(记忆化搜索)

    虽然不是正解但毕竟自己做出来了还是记下来吧- 对每个人分别dfs得到其期望,某两维的组合情况有限所以Hash一下避免了MLE. #include <cstdio> #include < ...

  8. jdbc查询

    import java.util.ArrayList; import java.util.List; import org.springframework.jdbc.core.BeanProperty ...

  9. 牛客网Java刷题知识点之什么是异常、异常处理的原理是什么、为什么要使用异常、异常体系、运行时异常、普通异常、自定义异常、异常链

    不多说,直接上干货! 在这个世界不可能存在完美的东西,不管完美的思维有多么缜密,细心,我们都不可能考虑所有的因素,这就是所谓的智者千虑必有一失.同样的道理,计算机的世界也是不完美的,异常情况随时都会发 ...

  10. 数据库操作语法错误(SQL syntax error)之两步走

    今天在做web应用操作数据库时出现了语法错误,提示的是在“xxxxxxx”附近出现了语法错误:CODE:Error: You have an error in your SQL syntax. Che ...