网站性能优化
2016-03-23 22:03
686 查看
1、减少dns查找次数
dns提供了域名和ip的对应关系,当你在浏览器地址栏中输入www.baidu.org 时,DNS解析服务器就会返回这个域名对应的IP地址。DNS解析的过程同样也是需要时间的。一般情况下返回给定域名对应的IP地址会花费20到120毫秒的时间。而且在这个过程中浏览器什么都不会做直到DNS查找完毕。2、避免使用重定向
跳转会降低用户体验。在用户和HTML文档中间增加一个跳转,会拖延页面中所有元素的显示,因为在HTML文件被加载前任何文件(图像、 Flash等)都不会被下载。有一种经常被网页开发者忽略却往往十分浪费响应时间的跳转现象。这种现象发生在当URL本该有斜杠(/)却被忽略掉时。例如,当我们要访问http: //astrology.yahoo.com/astrology 时,实际上返回的是一个包含301代码的跳转,它指向的是http://astrology.yahoo.com/astrology/ (注意末尾的斜杠)。在Apache服务器中可以使用Alias 或者 mod_rewrite或者the DirectorySlash来避免。
3、将css放在头部,将js放在尾部
浏览器从上到下依次解析html文档。将 css 文件放到头部, css 文件可以先加载。避免先加载 body 内容,导致页面一开始样式错乱,然后闪烁。将 javascript 文件放到底部是因为:若将 javascript 文件放到 head 里面,就意味着必须等到所有的 javascript 代码都被 下载、解析和执行完成 之后才开始呈现页面内容。这样就会造成呈现页面时出现明显的延迟,窗口一片空白。为避免这样的问题一般将全部 javascript 文件放到 body 元素中页面内容的后面。4、压缩css、js
如果你的网站大约有50-60%的用户是第一次访客,那么这些人会下载Javascript和CSS,如果这些文件很大浏览器会下载很长时间。使用压缩工具可以减少Javascript和CSS尽一半的文件大小,可使用雅虎的YUI压缩,至少能提高40%到60%的压缩率。
好处:
1、减小了文件的体积2、减小了网络传输量和带宽占用
3、减小了服务器的处理的压力
4、提高了页面的渲染显示的速度
5、使用内容分发网络
内容分发网络(Content-distribution network,CDN)是另一种缩短下载时间的好方法。当您将静态图像放在 Internet 上的许多服务器上时,用户能够从离他们最近的服务器下载这些图像。此外,大多数 CDN 都在快速服务器上运行,因此无论服务器的加载速度如何,其响应速度都比小型的超载服务器快。6、使iframe的数量最小
iframe元素可以在父文档中插入一个新的HTML文档。了解iframe的工作原理然后才能更加有效地使用它,这一点很重要。iframe的优点:
解决加载缓慢的第三方内容如图标和广告等的加载问题Security sandbox
并行加载脚本
iframe的缺点:
即时内容为空,加载也需要时间会阻止页面加载 o
没有语意
同步和异步
普通B/S模式(同步) AJAX(异步)同步:提交请求->等待服务器处理->处理完毕返回,这个期间客户端浏览器不能干任何事。
异步:请求通过事件触发->服务器处理(这时浏览器仍然可以做其他的事情)->处理完毕。
同步就是你叫我去吃饭,我听到了就和你去吃饭;如果没有听到,你就不停的叫,直到我告诉你听到了,才一起去吃饭。
异步就是你叫我,然后自己去吃饭,我得到消息后可能立即走,也可能等到下班才去吃饭。
所以,要我请你吃饭就用同步的方法,要请我吃饭就用异步的方法,这样你可以省钱。
举个例子 打电话时同步 发消息是异步
静态页面和动态页面
静态页面:内容都呈现在网页中,不和数据库发生交互。动态页面:结合数据库技术,与数据库发生交互。
服务器的分布式系统和负载均衡
分布式系统:与目前常见的集中式存储技术不同,分布式存储技术并不是将数据存储在某个或多个特定的节点上,而是通过网络使用企业中的每台机器上的磁盘空间,并将这些分散的存储资源构成一个虚拟的存储设备,数据分散的存储在企业的各个角落。负载均衡:分摊到多个操作单元上进行执行。
相关文章推荐
- 为什么要关注架构设计?
- SOA架构设计经验分享—架构、职责、数据一致性
- Android MVP设计架构实现
- HA高可用集群(双机热备)
- solr入门之suggest系统架构搭建
- RESTFul架构详解
- 3.5.Android控件架构与自定义控件详解之自定义View(四)
- java 从网站爬URL和相关关键字 并形成词频表 自学用
- 架构设计
- SVN利用Hooks自动发布网站
- Spark入门实战系列--4.Spark运行架构
- 二代旅游网站程序V1使用手册(三):旅游目的地管理
- mysql中文乱码问题(转自网易--网站笔记)
- 二代旅游网站管理系统V1.0正式发布啦
- 不能不知道的10个angularjs英文学习网站
- Shiro入门3:Shiro主要架构、组件介绍
- 一个网站完整的SEO优化方案
- Keepalived+MySQL主主互备模式实现高可用
- 一些IOS开发网站
- App 开发:Hybrid 架构下的 HTML5 应用加速方案