springboot怎么把数据传给前端:springboot 如何引入前端 bootstrap?
这种问题网上一搜一大堆,你可以具体找一篇文章试试,遇到问题可以针对相关问题去提问。springboot通过jar包方式引入bootstrap_个人文章 - SegmentFault 思否 这不是查查就
顺晟科技
2022-10-18 13:56:47
240
不清楚浏览器是在脚本运行时还是在执行后启动回流。所以基本上,如果我有一个循环(100次迭代),将一个元素插入到DOM中,浏览器停止脚本执行,用插入的元素重新计算布局,在每一步中重新绘制。然后下一步就来了。或者它不停地插入100个元素,然后回流?
要将其转换为代码,这两种代码之间是否有任何性能差异?
for(let i = 0; i < 100; i++){
$('body').append('<div>SOmething....</div>')
}
还是更好?
let a = $('<div></div>');
for(let i = 0; i < 100; i++){
$(a).append('<div>SOmething....</div>')
}
$('body').append(a)
或者,有没有一种更好、更有效的解决方案,可以在DOM中插入大量元素(10000个甚至更多),而不会降低浏览器的速度?
顺晟科技:
在现代浏览器中,只有在需要的时候才会发生回流,也就是说,要么是在空闲时间(Safari),要么是在下一次画图之前(在Chrome和Firefox中,或者Safari中,如果之前没有空闲的话),或者是在调用少数几个强制回流的方法之一时(更多细节见我的回答)。
对DOM的每一次修改都不会强制自己进行回流,在您的代码中,在下一次重绘之前只会发生一次。
然而,附加到DOM本身确实会带来一些成本,因此,是的,两种代码之间存在性能差异,但这种差异将是最小的。
附加到DocumentFragment可能更好,在某些情况下,构建一个巨大的标记字符串确实更快,但您确实应该重新考虑附加10000个元素的需要。相反,你有没有考虑过分页系统,或者无限滚动系统?通过这种方式,您每次只需附加整个内容的一小部分,让浏览器呼吸并处理内存压力。至少,您可以考虑按批附加元素,并使用setTimeout
让事件循环在每个批之间实际循环(并且浏览器呈现它所能呈现的内容)。
05
2022-12
02
2022-12
02
2022-12
29
2022-11
29
2022-11
24
2022-11