[问题] 浏览器画面render的流程?

楼主: LinLaoDa (LaoDa)   2015-05-05 18:42:14
最近在想一个有趣的问题,
$(function(){
for(var i=0; i< 10000; i++){
$(".test").append("<div>"+i +"</div>");
console.log($(document).height());
}
})
以上是一段javascript append 10000个 div的程式码,
在append后马上印出document的高,
不过在跑循环时,
画面还没有完成绘制,
可是他的高却一直有在变化,
想请问这是为什么呢?
绘制网页跟执行javascript是同个执行绪吗?
麻烦各位板大可以告诉我,
谢谢
作者: mmis1000 (秋月恋枫)   2015-05-05 18:56:00
重绘不一定要输出到银幕上阿,chrome是等js跑完再一并输出firefox看状况,不过大部分时候是跟fps同步spec压根儿没规定到这一块,所以别干这种傻事不对...firefox会同步也是少数状况而已如果用sync ajax时同时跑动画,ff会有,chrome会没画面完全是依实作而定
作者: leicheong (睡魔)   2015-05-05 23:21:00
在.load以recursive function方式跑应该就可以了吧?
作者: mmis1000 (秋月恋枫)   2015-05-06 01:08:00
如果你要他同时输出到银幕,请用setTimeout之类跑
作者: eight0 (欸XD)   2015-05-06 07:32:00
http://x.co/9RKAl 这篇文章讲得很完整

Links booklink

Contact Us: admin [ a t ] ucptt.com