Web前端 优化方案
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前端 优化方案的更多相关文章
- 关于大型网站技术演进的思考(二十一)--网站静态化处理—web前端优化—下【终篇】(13)
本篇继续web前端优化的讨论,开始我先讲个我所知道的一个故事,有家大型的企业顺应时代发展的潮流开始投身于互联网行业了,它们为此专门设立了一个事业部,不过该企业把这个事业部里的人事成本,系统运维成本特别 ...
- [转] Web前端优化之 Server篇
原文链接: http://lunax.info/archives/3093.html Web 前端优化最佳实践第二部分面向 Server .目前共计有 6 条实践规则.[注,这最多算技术笔记,查看最原 ...
- web前端优化-温故知新系列(1)
有关web前端优化的博文,博客园中有许多网友的博客中都有介绍,而且详细.精准.楼主打算写这个博客,算是对自己一年工作来的一个总结和积累有些知识从别的地方拷贝过来的,但是都审查过. 引言: 1. 慢的页 ...
- 网站静态化处理—web前端优化—下【终篇】(13)
网站静态化处理—web前端优化—下[终篇](13) 本篇继续web前端优化的讨论,开始我先讲个我所知道的一个故事,有家大型的企业顺应时代发展的潮流开始投身于互联网行业了,它们为此专门设立了一个事业部, ...
- 【转】关于大型网站技术演进的思考(二十一)--网站静态化处理—web前端优化—下【终篇】(13)
本篇继续web前端优化的讨论,开始我先讲个我所知道的一个故事,有家大型的企业顺应时代发展的潮流开始投身于互联网行业了,它们为此专门设立了一个事业部,不过该企业把这个事业部里的人事成本,系统运维成本特别 ...
- 关于大型网站技术演进的思考(二十)--网站静态化处理—web前端优化—中(12)
Web前端很多优化原则都是从如何提升网络通讯效率的角度提出的,但是这些原则使用的时候还是有很多陷阱在里面,如果我们不能深入理解这些优化原则背后所隐藏的技术原理,很有可能掉进这些陷阱里,最终没有达到最佳 ...
- 关于大型网站技术演进的思考(十九)--网站静态化处理—web前端优化—上(11)
网站静态化处理这个系列马上就要结束了,今天我要讲讲本系列最后一个重要的主题web前端优化.在开始谈论本主题之前,我想问大家一个问题,网站静态化处理技术到底是应该归属于web服务端的技术范畴还是应该归属 ...
- Web前端优化最佳实践及工具集锦
Web前端优化最佳实践及工具集锦 发表于2013-09-23 19:47| 21315次阅读| 来源Googe & Yahoo| 118 条评论| 作者王果 编译 Web优化Google雅虎P ...
- [转] Web 前端优化最佳实践之 Mobile(iPhone) 篇
原文链接:http://dbanotes.net/web/best_practices_for_speeding_up_your_web_site_server_mobile.html Web 前端优 ...
随机推荐
- jzoj6009. 【THUWC2019模拟2019.1.18】Counting (dp)
Description 羽月最近发现,她发动能力的过程是这样的: 构建一个 V 个点的有向图 G,初始为没有任何边,接下来羽月在脑中构建出一个长度为 E 的边的序列,序列中元素两两不同,然后羽月将这些 ...
- java五行代码导出Excel
目录 先看代码 再看效果 EasyExcel 附: Java按模板导出Excel---基于Aspose实现 Java无模板导出Excel,Apache-POI插件实现 已经写过两种Excel导出插件了 ...
- Ruby: Case表达式
Ruby的case表达式有两种形式: 第一种形式接近于一组连续的if语句:它让你列出一组条件,并执行第一个为真的条件表达式所对应的语句. 第二种形式,在case语句的顶部指定一个目标,而每个when从 ...
- java.lang.NoClassDefFoundError: com/sun/tools/javac/processing/JavacProcessingEnvironment
最近项目用到了java程序动态编译java源文件,运行程序一直报错,提示错误如下: Can't initialize javac processor due to (most likely) a cl ...
- 网站前端开发--css篇
Ⅰ 全局:global.css 全局样式为全站公用,为页面样式基础,页面中必须包含. 结构:layout.css 页面结构类型复杂,并且公用类型较多时使用.多用在首页级页面和产品类页面中. 私有:st ...
- js异步加载和按需加载
function loadScript(url,callback){ var script = document.creatElement("script"); script.ty ...
- Nginx托管.Net Core应用程序
Nginx托管.Net Core应用程序 一.安装.Net Core 参考官方文档:https://www.microsoft.com/net/core#linuxcentos 1.添加dotnet产 ...
- 使用docker save load 的时候的一个小问题
当你使用docker save image_id > aa.tar ; 然后再使用 docker load < aa.tar 时, 你会发现此时导入的镜像的repository和 tag ...
- windows 安装 jdk1.8并配置环境变量
1.查看电脑环境 我的电脑--右键--属性 2.下载jdk1.8 网址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-do ...
- C#基础之运行环境
这是我的第一篇博文,目前这一阶段我的目标是先把C#掌握好,C#是一门语言,是基于C风格语言(C.C++和Java)的特性而设计的.所以在我的博客里,我会记录下我的学习笔记,这不仅仅是笔记,还是所学过的 ...