我有一个重写的GWT DialogBox,它有一个小部件覆盖PagingScrollTable。 我的代码中有这样的东西:
1) DialogBox dialog = new ...
2) dialog.center();
3) Window.alert("Hello");
在IE中,我会在加载表的标题之后但在加载表的内容(大约1000行)之前看到警报。但是javascript是单线程语言,那怎么可能呢? 可能是浏览器问题或我的代码问题?
谢谢!
答案 0 :(得分:1)
Javascript可能是单线程的,但浏览器不是,并且页面呈现不是由Javascript引擎完成的,因此在页面呈现时Javascript可以运行没有冲突。
(事实上,您可以在async
标记上添加<script>
属性,以明确告诉浏览器执行此操作,但遗憾的是,此属性尚未在所有浏览器中完全支持)
答案 1 :(得分:0)
Javascript是异步的(它在浏览器中的一个线程内运行,所以它不会像你想象的那样加载页面加载。一旦javascript本身被加载,它只需要由一个事件触发运行,或者它被加载的事实足以运行它。''标签内容由浏览器立即处理 - 所以如果你的代码没有包含在'function'中你绑定到'unload'或类似的东西 - 只要它出现在DOM中就会运行。