发布信息

如何对前端性能启动优化 (前端如何开展工作)

     2024-08-13 13:28:16     739

本文目录导航:

如何对前端性能启动优化

前端开发代码优化、可保养性、阅读器兼容性是十分关键的课题。

从实践的工程运行角度登程,最常遇见的前端优化疑问。

前端性能启动优化规定,基本可以涵盖如今前端大部分的性能优化准则了,很多愈加geek和精细优化方法都是从这些准则外面加长进去的。

前端性能启动优化都有哪些规定

2. 经常使用CDN

网站上静态资源即css、js全都经常使用cdn散发,包括图片

3. 防止空的src和href

当link标签的href属性为空、script标签的src属性为空的时刻,阅读器渲染的时刻会把以后页面的URL作为它们的属性值,从而把页面的内容加载出去作为它们的值。

所以要防止犯这样的疏忽。

4. 为文件头指定Expires

新浪微博的这个css文件的Expires期间是2016-5-04 09:14:14.

5. 经常使用gzip紧缩内容

gzip能够紧缩任何一个文本类型的照应,包括html,xml,json。

大大增加恳求前往的数据量。

6. 把CSS放到顶部

网页上的资源加载时从上网下顺序加载的,所以css放在页面的顶部能够优先渲染页面,让用户觉得页面加载很快。

7. 把JS放究竟部

加载js时会对后续的资源形成阻塞,必定得等js加载完才去加载后续的文件 ,所以就把js放在页面底部最后加载。

8. 防止经常使用CSS表白式

举个css表白式的例子

font-color: expression( (new Date())()%3 ? “#FFFFFF : “#AAAAAA );

这个表白式会继续的在页面上计算样式,影响页面的性能。

并且css表白式只被IE允许。

9. 将CSS和JS放到外部文件中

目标是缓存文件,可以参考准则4。

但有时刻为了增加恳求,也会间接写到页面里,需依据PV和IP的比例掂量。

10. 掂量DNS查找次数

增加主机名可以节俭照应期间。

但同时,要求留意,增加主时机增加页面中并行下载的数量。

IE阅读器在同一时辰只能从同一域名下载两个文件。

当在一个页面显示多张图片时,IE 用户的图片下载速度就会遭到影响。

所以新浪会搞N个二级域名来放图片。

上方是新浪微博的图片域名,咱们可以看到他有多个域名,这样可以保障这些不同域名能够同时去下载图片,而不用排队。

不过假设当经常使用的域名过多时,照应期间就会慢,由于不用照应域名期间不分歧。

11. 精简CSS和JS

这里就触及到css和js的紧缩了。

比如上方的新浪的一个css文件,把空格回车所有去掉,增加文件的大小。

如今的紧缩工具有很多,基本干流的前端构建工具都能启动css和js文件的紧缩,如grunt,glup等。

12. 防止跳转

有种现象会比拟坑爹,看起来没什么差异,其实屡次了一次性页面跳转。

比如当URL本该有斜杠(/)却被疏忽掉时。

例如,当咱们要访问 http:// 时,实践上台往的是一个蕴含301代码的跳转,它指向的是 http:// /(留意开端的斜杠)。

在nginx主机可以经常使用rewrite;Apache主机中可以经常使用Alias 或许 mod_rewrite或许the DirectorySlash来防止。

另一种是不用域名之间的跳转, 比如访问 http:// /bbs跳转到 http:// /。

那么可以经过经常使用Alias或许mod_rewirte建设CNAME(保管一个域名和另外一个域名之间相关的DNS记载)来替代。

13. 删除重复的JS和CSS

重复调用脚本,除了参与额外的HTTP恳求外,屡次运算也会糜费期间。

在IE和Firefox中不论脚天性否可缓存,它们都存在重复运算Javascript的疑问。

14. 性能ETags

它用来判别阅读器缓存里的元素能否和原来主机上的分歧。

比last-modified date更具有弹性,例如某个文件在1秒内修正了10次,Etag可以综合Inode(文件的索引节点(inode)数),MTime(修正期间)和Size来精准的启动判别,避开UNIX记载MTime只能准确到秒的疑问。

主机集群经常使用,可取后两个参数。

经常使用ETags增加Web运行带宽和负载

15. 可缓存的AJAX

异步恳求雷同的形成用户期待,所以经常使用ajax恳求时,要被动通知阅读器假设该恳求有缓存就去恳求缓存内容。如下代码片段, cache:true就是显式的要求假设以后恳求有缓存的话,间接经常使用缓存

$({ url : url,>如何启动网站性能优化

一、前端优化

网站性能优化是一个很综合的话题,触及到主机的性能和网站前后端程序等各个方面,我只是从实践阅历登程,分享一下自己所尝试过的网站性能优化方法。

之所以在题目上挂一个web2.0,是由于本文更侧重于中小网站的性能优化,我所经常使用的系统也是典型web2.0的LAMP架构。

首先讲讲前端的优化,用户访问网页的期待期间,有80%是出当初阅读器前端,特意是页面和页面中各种元素(图片、CSS、Javascript、flash)的下载之上。

因此在很多状况下,相关于把少量的期间花在艰辛而冗杂的程序改良上,前端的优化往往能起到事倍功半的作用。

雅虎最近将外部经常使用的性能测试工具yslow向第三方地下,并颁布了驰名的网站性能优化的十三条规定,倡导你下载并装置yslow,并作为测评网站优化成果的工具。

上方我挑其中特意有价值的详细说明一下优化的方法:

关于第一次性访问您网站,尚未在阅读器cache中缓存您网站内容的用户,咱们可以做的事件包括:

1)增加一个页面访问所发生的)会无利于提高阅读器并行下载网页内容的才干。

关于您网站的经常性访问用户,关键的优化思绪就是最大限制应用用户阅读器的cache来增加主机的开支。

1)在header中参与过时期间(ExpiresHeader)

在header中给静态内容参与一个较长的过时期间,这样可以经常使用户今后访问只读取缓存中的文件,而不会与主机发生任何的交互。

不过这样做也存在一些疑问,当图片、CSS和js文件降级时,用户假设不刷新阅读器,就不可取得此降级。

这样,咱们在对图片、css和js文件修正时,必定要启动重命名,才干保障用户访问到最新的内容。

这或许会给开发形成不小的费事,由于这些文件或许被站点中的许多文件所援用。

flickr提出的处置方法是经过urlrewrite使不同版本号的URL理想上指向同一个文件,这是一个痴呆的方法,由于url级别的操作效率是很高的,可以给开发环节提供不少便利。

要了解为什么这样做,必定要了解阅读器访问url时的上班机制:

a.第一次性访问url时,用户从主机段失掉页面内容,并把相关的文件(images,css,js)放在高速缓存中,也会把文件头中的expiredtime,lastmodified,ETags等相关消息也一起保管上去。

我的阅历,假设或许,尽量遵照此准则给静态文件参与过时期间,这样可以大幅度增加用户对主机资源的重复访问。

2)将css和js文件放在独立外部文件中援用

将css和js文件放在独立文件中,这样它们会被独自缓存起来,在访问其余页面时可以从阅读器的高速缓存中间接读取。

一些网站的首页或许是例外的,这些首页的自身阅读或许并不大,但却是用户访问网站的第一印象以及导向到其余页面的终点,也或许这些页面自身经常使用了少量的ajax部分刷新及技术,这时可以将css和js文件间接写在页面中。

3)去掉重复的脚本

在IE中,蕴含重复的js脚本会造成阅读器的缓存不被经常使用,细心审核一下你的程序,去掉重复援用的脚本应该不是一件很难的事件。

4)防止重定向的出现

除了在header中人为的重定向之外,网页重定向常在不经意间出现,被重定向的内容将不会经常使用阅读器的缓存。

比如用户在访问,主机会经过301转向到/,在前面加了一个“/”。

假设主机的性能不好,这也会给主机带来额外的累赘。

经过性能apache的alias或经常使用mod_rewrite模块等方法,可以防止不用要的重定向。

还有一些,比如经常使用CDN散发机制、防止CSS表白式等、防止经常使用ETags等,由于不太罕用,这里就不再赘述了。

做完了上述的优化,可以试着用yslow测试一下网页的性能评分,普通都可以到达70分以上了。

当然,除了阅读器前端和静态内容的优化之外,还有针对程序脚本、主机、数据库、负载的优化,这些更深档次的优化方法对技术有更高的要求。

本文的后半部分将重点讨论后端的优化。

二、后端优化

上次写完web2.0网站前端优化篇之后,不时想写写后端优化的方法,当天终于有期间将思绪整顿了进去。

前端优化可以防止咱们形成无谓的主机和带宽资源糜费,但随着网站访问量的参与,仅靠前端优化曾经不能处置一切疑问了,后端软件处置并行恳求的才干、程序运转的效率、配件性能以及系统的可裁减性,将成为影响网站性能和稳固的关键瓶颈所在。优化系统和程序的性能可以从以下的方面来入手:

1)apache、mysql等软件的性能的优化

虽然apache和mysql等软件在装置后经常使用的自动设置足以使你的网站运转起来,然而经过调整mysql和apache的一些系统参数,还是可以谋求更高的效率和稳固性。

这个畛域中有很多专业的文章和论坛(比如:),要想把握也要求启动深化的钻研和通常,这里就不重点讨论了。

2)运行程序环境减速

这里仅以我最常运行的php开发环境为例,有一些工具软件可以经过优化PHP运转环境来到达提速的目标,其基本原理大抵是将PHP代码预编译并缓存起来,而不要求扭转任何代码,所以比拟繁难,可以将php的运转效率优化50%以上。比拟罕用的php减速工具有:APC(?package=APC)、TurckMMCache()、phpaccelebrator(),还有不要钱的ZendPerformanceSuite

3)将静态内容和灵活内容离开处置

apache是一特性能完善但比拟宏大的webserver,它的资源占用基本上和同时运转的进程数呈正比,对主机内存的消耗比拟大,处置并行义务的效率也普通。

在一些状况下,咱们可以用比拟轻量级的webserver来host静态的图片、样式表和javascript文件,这样可以大大优化静态文件的处置速度,还可以增加对内存占用。

我经常使用的webserver是来自俄罗斯的nginx,其余选用打算还包括lighttpd和thttpd等。

4)基于反向代理的前端访问负载平衡

当一台前端主机无余以接待用户访问时,经过前端机成功web访问的负载平衡是最极速可行的打算。

经过apache的mod_proxy可以成功基于反向代理的负载平衡,这里介绍经常使用nginx做代理主机,处置速度较apache更快一些。

5)运行缓存技术提高数据库效劳,文件缓存和散布式缓存

数据库访问处置并发访问的才干是很多网站运行的关键瓶颈,在想到经常使用主从结构和多farm的方式构建主机集群之前,首先应该确保充沛经常使用了数据库查问的缓存。

一些数据库类型(如mysql的innoDB)自身内置对缓存的允许,此外,还可以应用程序方法将罕用的查问经过文件或内存缓存起来。

比如经过php中的ob_start和文件读写函数可以很繁难的成功文件方式的缓存,而假设你领有多台主机,可以经过memcache技术经过散布式共享内存来对数据库查问启动缓存,不只效率高而且裁减性好,memcache技术在livejournal和等出名网站运行中都失掉了测验。

6)主机运转形态的检测,找到影响性能的瓶颈所在

系统优化没有与日俱增的方法,要求经过检测主机的运转形态来及时发现影响性能的瓶颈,以及或许存在的潜在疑问,由于网站的性能,永远取决于木桶中的短板。可以编写一些脚原本检测web服务的运转,也有一些开源的软件也提供了很好的性能

7)良好的裁减架构是稳固和性能的基础

一些技巧和窍门可以帮你渡过眼前的难关,但要想使网站具有接待大规模访问的才干,则要求从系统架构上启动彻底的布局,好在很多先人自私的把他们架构

网站的阅历分享给咱们,使咱们可以少走甚多弯路。我最近读到的两篇有启示的文章:

-从LiveJournal后盾开展看大规模网站性能优化方法

-Myspace的六次重构

最后不得不提到程序编码和数据库结构对性能的影响,一系列蹩脚的循环语句,一个不正当的查问语句、一张设计不佳的数据表或索引表,都足以会使运行程序运转的速度成倍的降落。

造就全局思索的才干,养成良好的编程习气,并对数据库运转机制有所了解,是提高编程品质的基础。

罕用的前端性能优化方法有哪些?

罕用的优化有两部分第一:面向内容的优化1. 增加 HTTP 恳求 2. 增加 DNS 查找3. 防止重定向4. 经常使用 Ajax 缓存5. 提前载入组件6. 预先载入组件 7. 增加 DOM 元素数量8. 切分组件到多个域9. 最小化 iframe 的数量10.不要出现http 404 失误第二:面向 Server1. 增加 cookie 2. 针对 Web 组件经常使用域名有关性的

相关内容 查看全部