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,一经查实,立即删除!

相关文章

A20 文件系统预装APK

1. 将需要预装的apk放入 android4.2/device/softwinner/wing-common/apk/ 或者 android4.2/device/softwinner/wing-common/preinstallapk/ 路径下 2. 如果apk有依赖的so文件,需要将so文件放入 android4.2/device/softwinner/wing-common/apklib/ 路径下。…

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

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

Spring笔记——数据源配置

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

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

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

Boost智能指针——shared_ptr

boost::scoped_ptr虽然简单易用,但它不能共享所有权的特性却大大限制了其使用范围,而boost::shared_ptr可以解决这一局限。顾名思义,boost::shared_ptr是可以共享所有权的智能指针,首先让我们通过一个例子看看它的基本用法&#x…

我和这个世界不太熟

我和这个世界不太熟。 这并非是我安静的原因。 我依旧有很多问题, 问他人,问故里,问希望,问距离。我和这个世界不太熟。 这并非是我虚假的原因。 我依旧有很多真诚, 离不开,放不下,活下去&#…

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学习上一节我们成功制作了能自己转圈的三维螺旋…

Boost智能指针——scoped_ptr

boost::scoped_ptr和std::auto_ptr非常类似&#xff0c;是一个简单的智能指针&#xff0c;它能够保证在离开作用域后对象被自动释放。下列代码演示了该指针的基本应用&#xff1a; #include<string> #include<iostream> #include<boost/scoped_ptr.hpp> cla…

设计模式习题

1、设计模式一般用来解决什么样的问题( a) A.同一问题的不同表相 B不同问题的同一表相 C.不同问题的不同表相 D.以上都不是2、下列属于面向对象基本原则的是( c ) A.继承 B.封装 C.里氏代换 D都不是3、Open-Close原则的含义是一个软件实体( a ) A.应当对扩展开放…

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

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

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

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

Boost智能指针——weak_ptr

循环引用&#xff1a; 引用计数是一种便利的内存管理机制&#xff0c;但它有一个很大的缺点&#xff0c;那就是不能管理循环引用的对象。一个简单的例子如下&#xff1a; #include<string> #include<iostream> #include<boost/shared_ptr.hpp> #include<b…

Linux下,C++编程论坛题目抽取

从一个论坛主页开始&#xff08;固定的一个&#xff0c;比如学校的论坛&#xff09;&#xff0c;输出各个&#xff08;不用全部&#xff09;板块下若干个主题帖子&#xff08;比如1000个&#xff09;的题目&#xff0c;按功能模块保存在txt文件中。 输入关键词&#xff0c;在上…

lisp eval apply_SICP远古魔法-LISP概览(1-2)

我们之所以能够像今天这样构建丰富多彩的应用是因为&#xff0c;我们有大系统中控制复杂度技术。实际上这种技术在其它领域早已存在。例如造火箭&#xff0c;盖房子。但是计算机科学又和他们不太一样&#xff0c;因为计算机科学处理的不是真实的情况&#xff0c;而是虚拟的。 例…

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

3月22日&#xff0c;iOS版微信迎来了7.0.12正式版更新&#xff0c;最大的亮点在于为iOS13设备加入了“深色模式”功能&#xff0c;虽然没有独立的控制开关&#xff0c;但可以跟随系统开启或关闭夜间模式。此外&#xff0c;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的成员对象,我便可以…

WebSite和Web Application\网站与Web项目的区别

简要记录下&#xff1a;1、web应用程序Default.aspx显示有两个原有文件及Default.aspx.cs和Default.aspx.designer.cs&#xff1b;1、Web网站Default.aspx显示有一个原有文件Default.aspx.cs。 2、web应用程序有重新生成和发布两项&#xff1b;Web网站只有一个发布网站。 3、we…