前端性能优化方法

2023-05-31 0 1,084

前端性能优化方法

》》》所推荐写作《《《

1、操控性试验自学讲义-情景结构设计

2、操控性试验的关键象征意义

3、操控性预测业务流程及形式

4、应用领域控制系统操控性Listary之操控性预测

一、应用领域程序关上URL和形式和操作过程

相同应用领域程序组织工作形式不全然那样,大体上来说,浏览器的核心理念是应用领域程序发动机;相同应用领域程序对W3C的规范化全力支持各不相同,在具体内容机能的同时实现上也不全然相同。

1、相连到URL所处的伺服器

使用者在应用领域程序页面输出URL,关上URL时,应用领域程序具体来说找寻该URL所处的伺服器。

个人简历应用领域程序到伺服器间的相连。

相连建立后,应用领域程序向伺服器发送http请求,请求URL对应的HTML文档,无论请求的URL是一个静态HTML文件还是一个动态的脚本(ASPX、PHP或JS),伺服器返回给应用领域程序

的一定是一个HTML文档。该文档就是应用领域程序需要呈现的画面。

需的资源

4、JS及CSS文件

页面处理JS文件,只需保证一下两点:

①所有JS文件按照其在HTML稳重出现的顺序执行,这样可以保证JS文件之间的依赖关系不被破坏;

②JS文件在执行时,其以来的DOM树已经建立好;

CSS文件的作用:

应用领域程序处理CSS文件会影响页面的展示,CSS一般用于控制页面元素的显示效果;如果DOM树上某个元素被CSS修改后,应用领域程序可能需要重新对页面局部或整体进行重绘。

此后如果某外部样式表(Style Sheet)文件被加载,应用领域程序会根据外部样式表文件的内容重新渲染页面元素,因此,一般建议把对样式表的引用放在HTML文档的最前面。

5、onload事件

当HTML文件解析完成,生成DOM树,所有页面所需资源都已成功下载和执行后,应用领域程序会发出onload事件并回调HTML文档中的onload函数。

对应用领域程序来说,onload事件是最接近页面就绪的事件,但onload执行完成,并不全然代表页面已就绪,使用者可以进行操作,因为在onload执行完成后,页面可能还有一些

JavaScript脚本需要在其后运行(这种情况在大量运用Ajax技术的网页上非常常见)。

PS:以及更多的后端知识,请自行查阅。。。

二、提高后端操控性的形式

要强化提升后端操控性,有以下两大形式

减少页面加载所需时间;

提升使用者角度的观感体验(让使用者觉得页面更快);

减少页面加载所需时间,可以从请求数量、请求并发度及网络传输时间等方面着手;提升使用者观感,则主要从让页面尽快展示入手;下面一一介绍:

1、减少网络时间

开相连”的操作过程;如果能减少DNS解析和文件在网络上传输的时间,操控性自然能得到提升。

①使用DNS缓存技术

使用DNS缓存技术可以让使用者获得更快的DNS解析时间,一般而言,由于应用领域程序本身就具有一定的DNS缓存机制,所以服务端的DNS缓存并不能带来太大的操控性提升。

②减少需要传输的文件尺寸

在网络带宽有限的情况下,减少传输的文件尺寸可以提升很大的操控性。常见的有将文件进行压缩的形式,除此之外,还有使用混淆等形式尽量减少JS文件和样式表的大小,从JS文件和

样式表中去除不需要使用的部分等,都可以起到减少需要传输文件尺寸的作用。

③加快文件传输速度

Internet网站的使用者通常分布在一个较广阔的区域内,Internet本身的多层次网络结构导致从某一个节点到另一些节点之间的可用带宽和网络传输速度都比较慢;这种情况下使用CDN技术,

让使用者尽可能访问到对使用者节点而言更快速的伺服器就可以加快文件传输速度。

国内而言,移动联通电信三大运营商之间并没有建立良好的互联互通,通常需在三个服务商所处网络中设置GDN伺服器;另外,出于地域原因,建立CDN也是种常见的形式。

CDN(Content Delivery Network):内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。

2、减少发送的请求数量

在短相连情况下,每个请求都需要经过“建立相连——发送数据——断开相连”的操作过程,因此减少请求数量可带来显著的操控性提升;即使使用持久相连形式,由于应用领域程序与每个伺服器之间的

建立的持久相连数量是有限的,减少必须的请求也可以带来操控性提升。

①利用应用领域程序缓存

为了充分利用应用领域程序缓存,需要在服务端保证每个可以被缓存的资源在被服务端返回时附带合适的expries头信息;此外,为了保证有尽可能多的内容可以被缓存,也要求网站尽可能将页面

中较少改变的部分提取出来。

保证服务端返回资源的响应头带有Expires信息,使得资源可以被缓存;

用引用形式引用样式表和JS脚本。如果使用内嵌的样式表和JS脚本,每次HTML文档的变化都会导致样式表和JS脚本重新加载,无法充分利用缓存;当然,在没有缓存或样式表与JS脚本

经常变动的情况下,引用形式使用样式表和JS脚本反而会导致更多的http请求;

使用更多的URI可以被缓存。

②使用合并的图片文件

当页面包含很多个小图片文件时,可以考虑将小图片文件合并为一个大的图片文件,在页面使用CSS Sprites技术将大图片显示为分隔开的小图片,在没有缓存的情况下,将许多小图片合并为

大图片文件可以大量减少http请求数。

3、提高应用领域程序下载的并发度

①JS文件放在HTML文档最后

在某些应用领域程序上,JS文件的下载和执行会阻止其他页面资源文件的下载和执行,之道JS文件下载和执行完,其他资源文件才可以开始下载和执行,因此,将JS文件放在HTML文档最后可以保证

JS文件不会阻止任何其他元素的下载。

②使用多个域名

应用领域程序对伺服器的相连限制是基于域名的。比如S伺服器有2个域名a.com和b.com,在应用领域程序限制最多与同一个域名建立2个相连时,应用领域程序实际上可以与服务器S建立4个相连;

一般大型网站都拥有几个域名,根据文件类型(静态资源、动态资源、JS脚本等)选择合适的伺服器进行部署,也是个很好的做法。

4、让页面尽早开始显示

将样式表的引用放在HTML文档的开头(如放在<Head>标签中),这样可以使样式表在一开始就被下载下来,一旦样式表下载完成,应用领域程序就可以使用样式表中定义的样式开始在屏幕上

显示页面元素;另外,也避免了新样式表可能带来的屏幕显示的重绘。

将JS的引用放在HTML文档的最后,这样JS文件的下载和执行会在所有页面都下载完成后,不会阻止其他页面元素的显示。从使用者感官上说,JS文件的下载和执行时间全然不会被使用者感觉到。

PS:上面几项都是一些提升后端操控性的通用形式,除这些之外,还有更多更细致的针对JS文件或样式表的提升操控性技巧,后续会不断更新。。。

三、常见的后端操控性工具

下面简单介绍下几种常见的后端操控性工具,具体内容使用形式及用途请自行查找资料。

1、Firebug工具

①Firebug工具是一个备受推崇的、强大的web开发工具,它提供了方便的查看页面元素机能,允许使用者以鼠标指示、DOM树等形式查看任意页面元素;

②提供了JavaScript控制台,允许使用者在控制台直接调试JavaScript;

③提供了可视化的CSS标尺,方便使用者调整页面布局;

④提供了网路面板,允许使用者获知每个页面被加载操作过程中的页面元素下载和执行细节;

⑤还提供了良好的扩展,比如YSlow和Page Spend工具就是基于其扩展而建立;

⑥Firebug以Firefox的插件形式存在,需要安装Firebug;

⑦Firebug给出了应用领域程序请求URL操作过程中发生的全部HTTP交互,列出每个元素的返回码、大小及按照时间序列给出的页面元素下载时间等信息;

2、HttpWatch工具

①HttpWatch是可以在IE和Firefox下使用的一个商业网页数据预测工具,其提供了一个基于basic的免费版本;

②安装简单,下载安装包后在Windows平台上直接执行即可;

③与Firebug类似,HttpWatch也给出了应用领域程序请求URL操作过程中发生的全部HTTP交互,列出每个元素的返回码、大小及按照时间序列给出的页面元素下载时间等信息;

④HttpWatch在Page Event选项卡中给出了Render Start(应用领域程序开始渲染页面的时间)、Page Load(onload事件触发时间)和HTTP Load时间(最后一个请求发送和接受完毕的时间点);

⑤以上三个时间对应Firebug中的第一个Paint事件发生时间、onload时间以及收到最后一个HTTP响应的结束时间;

3、Chrome自带的开发工具

①chrome是Google推出的一款应用领域程序产品,特点是快速、安全、简洁。

②chrome开发工具在对URL的请求操作过程的发生的HTTP交互信息和Firebug以及HttpWatch很相似;

③chrome开发工具还提供了非常详尽的应用领域程序时间信息;

4、Page Speed工具

Page Speed是一个基于Firebug工具的后端操控性强化工具,由Google创建并发布,其依据一些规则对页面进行检查,查找可强化的地方并给出响应建议。

5、DynaTrace AJAX Edition工具

①DynaTrace AJAX Edition是Windows平台上的免费工具,其提供了非常强大的后端操控性试验全力支持,主要针对Ajax技术的应用领域而开发;

②DynaTrace AJAX Edition能够给出应用领域程序访问给定的URL时的许多信息,如页面各元素下载和执行时间点、页面对应用领域程序的缓存使用情况,并给出一些强化建议;

③DynaTrace AJAX Edition工具最突出的机能是对页面的JavaScript的Listary;

PS:合适的工具可以大大降低后端操控性问题定位的难度,但不要过度依赖工具给出的建议,相对于工具,更多的是对应用领域程序组织工作形式和后端操控性本身的了解。

》》》所推荐写作《《《

1、操控性试验自学讲义-情景结构设计

2、Web站点操控性Listary全然攻略

3、应用领域控制系统操控性Listary之操控性预测

4、Windows监控——操控性指标详解

6、操控性测试的关键象征意义

7、软件操控性试验的本质_致命版

8、操控性预测业务流程及形式

9、操控性试验业务流程

10、操控性试验从需求预测开始

11、操控性试验指标

12、双活数据中心揭秘之—DB2 PureScale

13、循序渐进自学oracle

14、软件项目管理中的十个误区

15、机能试验形式总结及常见面试问题

16、MQ来账通道及队列配置

17、Linux命令大全整理

18、JMeter工具简单介绍

19、操控性瓶颈预测形式

20、操控性试验-LoadRunner操作业务流程之一

22、操控性试验-LoadRunner操作业务流程之二

23、操控性试验-LoadRunner操作业务流程之三

24、操控性试验-脚本编写之一

25、操控性试验-脚本编写之二

26、操控性试验-脚本编写之三

27、操控性试验-操控性Listary之一

28、操控性试验-操控性Listary之二

前端性能优化方法

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务