html5 内嵌网页_如何分析并优化网页的性能?新梦想软件测试

一个网站的网页是好是坏,往往是体现在速度和高度两个方面,速度是网页所展示出来的时间,能否为浏览用户节约时间。高度则是一个网站网页本身的质量,能否为浏览用户带来真正的好体验。然而看似简单的两个点,但是背后要实现起来是需要花费精力和时间的。任何网站的终极目标不仅仅是让其运行很快,而是让使用该网站的用户满意。用户花在网站上的大多数时间不是等待加载,而是在使用过程中等待响应。

一个网页打开速度慢,图片加载慢,浏览卡顿,页面的动画效果不流畅,或者突然崩坏等,这种网站无疑在用户心里就是“垃圾网站”。作为一个网站开发者,谁愿意看到这种情况?所以提高网页性能势在必行!

039caf65af1ccbc24586883651300057.png

第一,要对页面性能进行分析,那么首要了解浏览器加载的过程,主要包括连接和渲染。

1、建立连接过程

1) 浏览器查找域名的IP地址

2) 浏览器给web服务器发送一个HTTP请求

3) 服务器发送永久重定向响应

4) 浏览器跟踪重定向地址

5) 服务器“处理”请求

6) 服务器发回一个HTML响应

2、浏览器渲染

解析HTML->构建DOM树->渲染树构建->渲染树布局->绘制渲染树

第二,优化网页性能的大概方法

1、开启浏览器缓存

浏览器要根据域名找出IP地址,而DNS查找过程的第一步是在浏览器缓存中查找,根据Chrome的PageSpeed给出的建议:要利用浏览器缓存存储可缓存的资源。在 HTTP 标头中为静态资源设置有效期或最长存在时间,可指示浏览器从本地磁盘中加载以前下载的资源而不是从网络中加载。

dd33e3cb5f11c20a2202afe691f9caba.png

HTTP 1.1提供的缓存方法主要有两种:

1) Expires和Cache-Control:max-age.即内容在缓存中的生命有效期。第一次请求后将在生命有效期之内直接从本地缓存中拿取。

2) Last-Modified和ETag.:Last-Modified标记文件最后一次修改的时间,浏览器请求是在头部加入上次请求缓存下来的Last-Modified时间,若两次请求期间服务器的内容没有修改,服务器返回304 Not Modified,则不下载资源,浏览器直接使用本地缓存;否则,服务器会返回200以及更新后的版本。ETag是服务器对于文件生成的Hash散列,其生成算法与最后一次修改的时间相关。浏览器第二次请求发送上次的ETag信息,服务器通过简单的比对就知道是否应该返回304还是200。PageSpeed建议,要为资源指定Last-Modified或ETag标头,以便启动缓存验证。

2、页面内容组织

1)为 HTML文档指定字符集,可让浏览器立即开始执行脚本。

2)将内嵌样式块和元素从文档主体移至文档标题,可改善显示性能。

3)将小型样式表或者脚本内嵌到主 HTML 网页中,可减少在下载其他资源时的往返时间 (RTT) 和延迟时间。

3、HTML

1)压缩HTML。

2)为图片指定大小,减少重排。

3)减少HTML标签嵌套深度,嵌套越深,在移动端的Web页面渲染速度以及滚动流畅度都会有所减低。

4)使用HTML5新标签,例如header、footer、section、nav、article。因为它们语义化,速度快,结构合理,浏览器上识别能力强。

4、CSS

1)避免使用滤镜。

2)不使用@import。

3)合并和压缩CSS代码。

4)减少渐变、阴影的使用。

5)模块化、精简css,提高复用率。

6)合理使用CSS3高性能动画,Translate3d支持硬件加速。

7)使用CssSprite将零星的背景图包含到一张图中,通过background-position来使它显示在正确的位置;只请求一张图,减少了HTTP请求的次数。

5、Java

1)模块化代码:SeaJs。

2)合并和压缩Java代码。

3)压缩工具:YUI Compressor或JSMin等。

4)使用事件委托机制,避免频繁操作DOM节点。

5)暂缓 Java 解析,暂缓解析不需要的 Java(等到需要执行时再进行解析),可以提高网页的初始加载速度。

3ac59201b69f6a699384d19c078d0c5b.png

6、 图片优化

1)压缩图片

2)图片时页面大部分加载时间所花的地方,在图片设计的时候应该考虑相应的图片大小和格式

第三,网页性能优化实战分析

以Chrome Developer Tools作为示例工具讲解(可通过F12键打开),目前各大主流浏览器都有类似的插件功能。

1、 Network可以查看页面加载时长,资源加载情况(状态、时长),资源加载时间具体分析,从而针对性的优化页面

2、timeline 可看页面渲染情况,从而进行页面优化

3、profiles可看函数执行情况

第四,网页性能优化推荐工具

1、Chrome(Firefox) Developer Tools ——分析性能

2、HttpWatch ——IE插件,分析网页性能

2、PageSpeed —— 查看性能建议

3、Fiddler —— HTTP/HTTPS网络调试

最后,别忘记了一件事,完成相关的网页优化操作后,再进行适当的网页性能测试,以防前面的工作变成无用功。一个好的网站不是开发一个人的事情,还有产品、设计、SEO、测试等人员参与其中。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/433604.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

怎么修改file文件框的无文件提示_使用LativeLink时,DO文件编制步骤

大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分。大侠可以关注FPGA技术江湖,在“闯荡江湖”、"行侠仗义"栏里获取其他感兴趣的资源,或者一起煮酒言欢。今天和大侠简单聊聊使用LativeLink时,…

Spring笔记——数据源配置

常见的数据源(连接池)包括:DBCP、C3P0、BoneCP、Druid等接下来以C3P0为例讲述一下spring配置数据源的过程数据源的开发步骤 ①导入数据源的坐标和数据库驱动坐标 ②设置数据源的基本连接数据,将其放入jdbc.properties文件中 ③app…

间歇性掉帧卡顿_电脑卡顿问题靠它解决,我只能帮你到这儿了

因为不可抗力的原因,我们都要在家里呆上一段时间,在这期间之中如果电脑出现问题可是一件非常糟心的事情,因为没有人会去给你上门维修,线下门店又关门大吉,一切只能靠自己。抢救一下电脑最常见的问题就是卡顿&#xff0…

SpringMVC遇到的问题——GET http://localhost/spring_mvc_war_exploded/js/jquery-3.3.1.js net::ERR_ABORTED 404

学习SSM时遇到的问题GET http://localhost/spring_mvc_war_exploded/js/jquery-3.3.1.js net::ERR_ABORTED 404新建了js包,并在包下导入了jquery-3.3.1/js,发布项目后通过浏览器开发者工具 发现报错,信息如下:这个问题的解决方案&…

educoder平台_22个在线平台,2.4万门网课

截至2020年2月2日,教育部组织了22个在线课程平台制定了多样化在线教学解决方案,免费开放包括1291门国家精品在线开放课程和401门国家虚拟仿真实验课程在内的在线课程2.4万余门,覆盖了本科12个学科门类、专科高职18个专业大类,供高…

linspace函数matlab_从零开始的matlab学习笔记——(29)泰勒逼近函数

matlab应用——求极限,求导,求积分,解方程,概率统计,函数绘图,三维图像,拟合函数,动态图....更多内容尽在个人专栏:matlab学习上一节我们成功制作了能自己转圈的三维螺旋…

点云数据生成三维模型_可直接编辑的高质量3D生成模型:三维深度生成方法SDM-NET...

机器之心发布作者:赵悠悠中科院计算所、香港城市大学、英国卡迪夫大学以及加拿大西蒙弗雷泽大学的研究者,近日提出了一种能够表达几何细节和复杂拓扑结构的三维模型深度生成方法 SDM-NET,解决了之前方法的一部分局限性,使得生成的…

golang调用java的函数_大话golang性能分析(一):profile基本原理

引言:好久没分享了,不多废话了,准备一个专题分三期来分享下golang的性能分析。O 专题目标理解profile基本原理熟悉go常用性能分析工具pprof快速对线上服务的cpu、内存、goroutine的问题进行分析和排查对性能分析,golang是采取采样…

奥拉星插件flash下载手机版下载安装_终于等到你!安卓微信7.0.13内测版发布 支持夜间模式 附下载地址!...

3月22日,iOS版微信迎来了7.0.12正式版更新,最大的亮点在于为iOS13设备加入了“深色模式”功能,虽然没有独立的控制开关,但可以跟随系统开启或关闭夜间模式。此外,iOS版微信7.0.12还优化了语音消息的发送体验&#xff0…

boost::weak_ptr和enable_shared_from_this

boost::weak_ptr和enable_shared_from_this shared_ptr在我的实践中使用很广,在接口层面上,我基本都会默认的使用shared_ptr.而weak_ptr则很少使用;即便使用,也是间接的使用,例如使得class A继承自boost::enable_shared_from_this,这样A便具有了一个weak_ptr的成员对象,我便可以…

linux(centos7)安装jdk

一、下载jdk1.8压缩包 官网链接如下: jdk官网 用xftp直接传输文件, 把下载好的jdk压缩包上传到Linux的文件夹下去到我们存放软件的文件夹下面,将刚刚下载好的压缩包通过如下命令进行解压: tar -zxvf jdk-8u321-linux-x64.tar.g…

inner join 和join的区别_left join、right join和join ???

点击上方“JAVA”,星标公众号重磅干货,第一时间送达有个困扰 说到SQL,很多人可能用了挺久,但依然有个问题一直困扰着,那就是 left join、 join、 right join和 inner join等等各种 join的区别。网上搜,最常…

linux(centos7)安装MySQL

一、删除MariaDB的文件 通过命令查询MariaDB:rpm -pa | grep mariadb 通过命令删除查找到的程序rpm -e 查找到的文件名 如果删除失败,就通过下面的命令强制删除:rpm -e --nodeps 查找到的文件名 二、安装MySQL 1、安装mysql repo源 …

我有机器人合体成一个大力神_史上最菜大力神(三)——SS加强级高塔

史上最菜大力神(三)——SS加强级高塔​mp.weixin.qq.com上次开箱废渣和狂暴的时候,误把电影中出现的高塔当作废渣,犯下了一个不大不小的错误,如今真正的高塔终于来了。史上最菜大力神(一)——SS…

c语言判断闰年_C语言1博客作业06 - D丶千思

1.作业头实验作业输入在一行中按照格式“yyyy/mm/dd”(即“年/月/日”)给出日期。注意:闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。闰年的2月有29天。.1数据处理数据表达:采用整形定义变量Y(year),M(month)&#x…

新版本idea的run/debug configuration

点击Edit Configuration点击modify options的下拉选项根据需要勾选相应的选项

无法渲染窗口发黄_基础c4d教程:OC渲染器的立体光照

一、效果图昨天才把C4DR19安装好,之前安装一直在说无法找到系统的什么dll,后面查了好多方法终于弄好了,今天我也是第一次使用OC渲染,所以可能调节就没有那么好,大家一起进步吧!二、教程1、首先打开我们的C4…

java8 list 去重_Java8-Stream在集合中的8种应用案例

前言Java8新特性我们使用的应该比较多了,今天这里整理了个人使用最多的8种场景,希望对大家有所帮助。Java Stream在集合中的运用案例遍历遍历也许是我们使用最多的功能了,在Java8之前我们遍历集合通常会采用for循环,迭代器&#x…

springboot——热部署

一、手动启动热部署 在进行 Spring Boot 的 Web 项目开发中,我们经常会遇到源代码文件、 配置文件等的修改,但每次修改后都会重启 Web 服务器才能修改后的文件生效, 这样很耗时,影响开发效率。而热部署就是不需要重启 Web 服务器就…