发布网友 发布时间:2022-04-21 11:15
共2个回答
懂视网 时间:2022-04-21 15:36
在制作移动端页面时,展示图片的方法是一般是通过css background样式或者加在img src标签上。然而,久而久之习惯了使用,却忘记思考哪个才是最优的?我们是否真正理解两者之前的区别?两者对比各有什么优劣势呢? 让我们先看一下这两种方式的基本概念。background属于css方法,img属于html标签。按照浏览器的渲染机制,html标签会被优先解析,而css则是在html解析完成后再执行。从这里也能够得到一个信息:img方法比background方法能更加快速的显示图片。
接下来个人结合日常项目需求对两者关于加载速度、FPS、动画性能等方面进行对比:
两个demo中分别使用background-image方式和img src方式对图片展示,页面中均有500个DOM,分别对速度、FPS、动画流畅性等方面进行测试比较。
测试网络情况为Regular 3g(750kb/s 100ms RTT)。 由于实现方式不同所以页面的代码体积大小是不一样的。两个测试文件中,background页面完全加载成功后是337kb,img页面完全加载成功后是347kb。 两个demo加载后的大小主要是受css和html代码影响,background页面实现方式css代码量会相对较多,html代码量较少;而img页面实现方式css代码量会相对较少,html代码量较多。所以在页面各放置了500个DOM,html的代码量剧增,最终导致img页面会比background页面大一些。 最后使用Navigation Timing API测试页面加载时间。测试代码如下:
window.onload = function() { setTimeout(function() { var t = performance.timing; console.log("页面速度: " + (t.loadEventEnd - t.responseEnd) + " ms"); }, 0);};
测试数据为(单位ms):
平均值 | |||||||||||
backgruound | 3356 | 3352 | 3350 | 3354 | 3353 | 3354 | 3353 | 3353 | 3354 | 3352 | 3353.1 |
img | 3216 | 3238 | 3224 | 3224 | 3230 | 3222 | 3225 | 3229 | 3212 | 3215 | 3223.5 |
从上面的数据可以看出background页面和img页面加载速度差异不大,再结合前面所说的“img页面会比background页面大一些”,最终我们可以得到结论: 两者加载速度差异不大。在极端情况下,img页面实现方式会稍微快一些。
两者实现方式的本质都是将图片渲染出来,在理论上来说,两者应该差别不大,但还是做了数据统计,见下表:
平均值 | |||||||||||
backgruound | 16.0 | 17.7 | 18.6 | 17.7 | 17.3 | 16.2 | 17.7 | 20 | 19.1 | 16.9 | 17.72 |
img | 19 | 16.9 | 20 | 18.5 | 19 | 16.2 | 15.7 | 17.8 | 19 | 21 | 18.31 |
从这里的数据显示得到结论:两者FPS差异不大。
在两个demo页面中,使用css3的transform:rotate实现从0度到360度循环旋转动画。演示地址:
(img页面)
(background页面)
测试得到GPU数据为:
平均值 | |||||||||||
backgruound | 11 | 14 | 15 | 23 | 30 | 11.1 | 25 | 26.9 | 25 | 12 | 19.3 |
img | 6.2 | 6.2 | 6.2 | 6.2 | 6.2 | 6.2 | 6.2 | 6.2 | 6.2 | 6.2 | 6.2 |
上面数据中显示,background页面实现方式GPU使用会在0~30之间波动;img页面实现方式GPU则一直保持在6.2。在比较低端手机上体验的时候,也很明显的感受到background页面的动画会出现一些卡顿,而img页面的动画则非常流畅。从这里可以得出结论: 在动画方面,img实现方式比background实现方式性能会更好,可以提高动画性能。
结合其他一些比较重要的方面,最后做个总结:
感谢大家阅读,欢迎一起探讨。
热心网友 时间:2022-04-21 12:44
围棋在唐代很是流行。在当时的文人诗句中,也常能出现与围棋有关的诗作。例如“宫棋布局不依经,黑白分明子数停。巡捡玉沙天汉晓,犹残织女两三星”这是王建的《夜看美人宫棋》,描述的是两个女子下棋下到天亮的事情。“初疑磊落曙天星,次见搏击三秋兵。雁行布阵众未晓,虎穴得子人皆惊”则是刘禹锡眼中僧人的棋路。白居易更是用“百千家似围棋局,十二街如种菜畦”来形容长安城中街坊的布局。
唐玄宗时围棋界的第一国手是待诏翰林的王积薪。在唐代,翰林待诏和翰林学士是两个概念。翰林学士是皇帝的秘书,可以参与国家大事的决策过程,而翰林待诏则属于有出色才艺的人,他们的主要职责是丰富皇帝的业余生活。王积薪曾经遇上过世外高手,棋艺有了突破性的进展。
天宝十五载安史之乱时,唐玄宗前往成都避难,诗人说这是“九重宫阙烟尘生,千乘万骑西南行”。高僧留下的帖子预言说这就是“蜀当归”,到了蜀地再回来。而兴平这个地方的老百姓则是另一种看法,他们说宫阙是皇上的老宅子,陵寝是皇上的祖坟,现在皇上扔下老宅子和祖坟不管,要跑到哪里去。
玄宗执意西南行翻越秦岭,深山之中人烟稀少,住宿都是个问题,每天到达宿营地后大多数随行人员只能自找门路甚至睡在露天野地,王积薪也是自找住处的人。那天到了驿站之后王积薪就自觉的沿着山溪向上攀登,了不起是“行到水穷处,坐看云起时”,总会找到住处的。功夫不愧有心人,王积薪找到一家农户。本想着可以舒舒服服的住上一宿,很快他就发现问题比较复杂,这户人家中只有两个女性,年青的媳妇和年迈的婆婆。深山野岭的家中突然来了一个素昧平生的男人,两个女人总是要避避嫌,当天晚上的住宿是这样安排的,婆婆依旧住在东屋,媳妇依旧住在西屋,王积薪睡在房门外的屋檐下。这种安排完全符合“非礼勿视”的道德标准。
天黑之后,东屋和西屋的灯都吹灭了,房门紧闭。在深山之中见上个人不容易,见到两个女性更不容易,唐朝有一个*到小地方出差,看到乡间小路旁的鼓子花时写下一首诗:“曾过西街看牡丹,牡丹未谢既心阑。如今变作村田眼,鼓子花开也喜欢。”王积薪在京城时和多少贵妇人下过棋,什么样的美女都见过,如今却躺在屋檐下望着夏日那满天的星斗思绪万千硬是睡不着。
这时他听见屋子里有人说话,东屋的婆婆对西屋的媳妇说,咱们下一盘棋吧。西屋的媳妇回东屋婆婆的话,请您先行。东屋的婆婆高声报出:我在东五南九这个点上布一个子,西屋的媳妇说,那我在东五南十二这个点上布一个子。
两个人你来我往下到第三十六步时婆婆说,你输了。
这时候已经是四更时分。
这盘蒙棋下的王积薪口服心服,他暗自记下了步数。想当年三国纷争,魏国邓艾领精兵数千手持斧锯逢山开路遇水搭桥,走小径绕过剑门天险直取成都,蜀汉两代国君四十三年江山就此告一段落。王积薪便将这盘棋命名为“邓艾开蜀势”。
那家的婆婆认为王积薪属于可教之类,给他指点了围棋的攻守、杀夺、救应、防拒的招数,王积薪求艺若渴还想再学几招,婆婆说这几招就够了,有了这几招你完全可以下遍天下无敌手。
事后,王积薪曾经多次将这盘棋进行复盘,却始终没有推算出媳妇落败的原因。
这件事是有些奇怪,这深山野岭上偏偏住着精通棋艺的婆婆和媳妇,她们偏偏又遇上国手王积薪。更令人生疑的是第二天早晨王积薪忙着去追赶自己的队伍,当他离开那户人家几十步远时回头一看,坐落在那里的几间茅草房已经无影无踪,连遗迹都不存在了。这件事就变成了事出有因查无实据。