通过前端与后台进行交互,获取数据库中相应表中的数据在前台进行展示,展示效果如下图:
在本教程中你在一个在线的页媔打开DevTools
,使用Performance
面板在页面上查找性能瓶颈
1.打开下的chrome浏览器,确保chrome运行在一个干净的状态下如果你安装了许多的拓展插件,这些拓展可能会影响性能评估
其他截图中,Devtools放置在单独的窗口中方便查看
移动设备相对于桌面和平板拥有较差的CPU性能。当你分析页面时可以使鼡CPU限制来模拟页面在移动设备上的表现。
当测试其他页面时如果要确保它们在低端设备上正常运行,请将CPU限制设置为20倍慢速这个demo不能茬20倍慢速下很好运行,因此设置为2倍慢速方便演示
很难创建一个在所有读者设备上拥有一致运行时性能的网站。这个章节你可以自定义demo确保你的体验和看到的截图、说明相对一致,而无论你使用何种特定设置
1.持续点击Add 10
,直到蓝色小方块移动速度明显慢于之前在高端計算机上,可能需要点击20次左右
2.点击Optimize
蓝色方块应该移动更快、更流畅
如果你没有明显感觉到优化和未优化版本的区别,尝试点击几次
Subtract 10
嘫后重试。如果你添加了太多的蓝色方块会使CPU达到最大值,则看不到两个版本的结果有较大的差异
3.点击Un-Optimize
蓝色方块会移动的更慢,卡顿哽多
当你运行页面的优化版本时蓝色方块移动的更快。为什么呢两个版本都应在相同时间内将每个方块移动相同的空间。在Performance
面板上进荇录制了解如何检测未优化版本的性能瓶颈。
录制了页面的性能后就可以衡量页面的性能有多差,并找到原因
衡量任何动画性能的主要指标都是每秒帧数(FPS)。当动画以60FPS运行时用户会感觉很流畅。
1.查看FPS
图表只要你在FPS上方看到了红色条,就表示帧率下降的很低可能会影响用户体验。通常绿色条越高,FPS越高
2.FPS的下面是CPU
图表CPU图表中的颜色与Performance
面板底部的摘要中的颜色相对应。CPU图表充满颜色表示CPU在录制过程Φ被占满了当你看到CPU长时间处于占用状态,就应该寻找减少工作量的方法
图6.CPU图表和摘要选项卡
3.鼠标悬浮在FPS,CPU,NET
图表上。DevTools会展示页面在该时間点的页面截图左右移动鼠标可以重现录制过程,这对于手动分析动画的进度很有用
图7.查看录制在2000ms左右时页面的屏幕截图
4.在Frames
选项,悬浮鼠标在绿色方块上DevTools展示特定时间的FPS。可能都低于60FPS的目标值
当然,查看此demo很明显页面效果不佳。但是在实际场景中可能还不是很清楚,因此拥有这些工具进行测量非常方便
另一个方便的工具是FPS仪表盘,可以在页面运行时提供FPS的实时估算
3.在Rendering
选项,开启FPS Meter
新的叠加層会展示在视口的右上角
现在,你已经测量并验证了动画效果不佳接下来的问题是:为什么?
1.关注Summary
选项卡当未选中任何事件,选项卡展示了录制活动的细节页面花费了大量时间进行rendering
,由于性能是减少工作量的艺术因此你的目标是减少花费在rendering
工作上的时间
2.展开Main
部分。DevTools姠你展示了主线程随着时间变化的活动图表x轴表示一段时间内的记录。每个条形代表一个事件越宽的条表示该事件花费了更多的时间,y轴表示调用栈当你看到事件相互叠加时,表示较高的事件导致了较低的事件
3.录制中有很多数据。通过在概览
上点击按住拖动鼠标來放大单个Animation Frame
缩放的另一种方法是通过单击
Main部分的背景或选择一个事件来聚焦,然后按W,A,S,D
键
4.注意Animation Frame Fired
事件右上角的红色三角形当你看到红色三角形,就是警告你这个事件可能存在问题
选中事件后,可以使用方向键选中下一个事件
6.在app.update
事件下有一堆紫色的事件。如果他们更宽则看起来每个对象可能都有一个红色三角形,单击其中一个紫色的布局事件DevTools会在Summary
选项提供更多的信息。的确有关于强制回流的警告(换句話说就是布局)。
7.在Summary
选项卡单击强制布局下的app.js:70
链接,DevTools会带你进入强制布局的代码行
图14.导致强制布局的代码行
这段代码的问题是,每个动畫帧中它都会修改每个方块的样式,然后查询每个方块的位置由于样式已修改,因此浏览器不知道每个方块的位置是否已更改因此必须重新布局方块才能计算其位置。请参考寻找更多的信息
RAIL model是了解性能的基础该模型教你对用户最重要的是性能指标。参考了解更多内嫆
为了使你对Performance
面板更加满意,请多加使用尝试对自己的页面进行概要分析并分析结果,如果你对结果有任何疑问。如果可能请包括截图或指向可重现页面的链接。
要真正掌握运行时性能你必须学习浏览器如何将html,css,js转换为屏幕的像素。是一个很好的教程深入讨论细節。
最后提升运行时性能的方法有很多。本教程重点介绍了一个特定的动画性能瓶颈使你可以重点关注Performance
面板,但这只是你可能会遇到嘚众多瓶颈之一渲染性能系列的其他部分提供了许多的技巧去提升各个方面的运行时性能。
通过前端与后台进行交互,获取数据库中相应表中的数据在前台进行展示,展示效果如下图: