作者LinLaoDa (LaoDa)
看板Ajax
标题[问题] 浏览器画面render的流程?
时间Tue May 5 18:42:14 2015
最近在想一个有趣的问题,
$(function(){
for(var i=0; i< 10000; i++){
$(".test").append("<div>"+i +"</div>");
console.log($(document).height());
}
})
以上是一段javascript append 10000个 div的程式码,
在append後马上印出document的高,
不过在跑回圈时,
画面还没有完成绘制,
可是他的高却一直有在变化,
想请问这是为什麽呢?
绘制网页跟执行javascript是同个执行绪吗?
麻烦各位板大可以告诉我,
谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 59.115.199.31
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Ajax/M.1430822536.A.1CB.html
1F:→ mmis1000: 重绘不一定要输出到银幕上阿,chrome是等js跑完再一并输 05/05 18:56
2F:→ mmis1000: 出 05/05 18:57
3F:→ mmis1000: firefox看状况,不过大部分时候是跟fps同步 05/05 18:57
4F:→ mmis1000: spec压根儿没规定到这一块,所以别干这种傻事 05/05 18:58
5F:→ mmis1000: 不对...firefox会同步也是少数状况而已 05/05 18:59
6F:→ mmis1000: 如果用sync ajax时同时跑动画,ff会有,chrome会没画面 05/05 19:00
7F:→ mmis1000: 完全是依实作而定 05/05 19:01
8F:→ leicheong: 在.load以recursive function方式跑应该就可以了吧? 05/05 23:21
9F:→ mmis1000: 如果你要他同时输出到银幕,请用setTimeout之类跑 05/06 01:08