页面呈现可以与JavaScript同时运行吗?

时间:2011-09-13 15:24:27

标签: java javascript internet-explorer gwt browser

我有一个重写的GWT DialogBox,它有一个小部件覆盖PagingScrollTable。 我的代码中有这样的东西:

1) DialogBox dialog = new ...
2) dialog.center(); 
3) Window.alert("Hello"); 

在IE中,我会在加载表的标题之后但在加载表的内容(大约1000行)之前看到警报。但是javascript是单线程语言,那怎么可能呢? 可能是浏览器问题或我的代码问题?

谢谢!

2 个答案:

答案 0 :(得分:1)

Javascript可能是单线程的,但浏览器不是,并且页面呈现不是由Javascript引擎完成的,因此在页面呈现时Javascript可以运行没有冲突。

(事实上,您可以在async标记上添加<script>属性,以明确告诉浏览器执行此操作,但遗憾的是,此属性尚未在所有浏览器中完全支持)

答案 1 :(得分:0)

Javascript是异步的(它在浏览器中的一个线程内运行,所以它不会像你想象的那样加载页面加载。一旦javascript本身被加载,它只需要由一个事件触发运行,或者它被加载的事实足以运行它。''标签内容由浏览器立即处理 - 所以如果你的代码没有包含在'function'中你绑定到'unload'或类似的东西 - 只要它出现在DOM中就会运行。