4

我检查了.readyState使用BrowserTestObjectRFT(Rational Functional Tester)的属性。

有时在我的测试脚本的下一步之前,我需要确保页面“准备就绪”并且所有对象都已加载。

这是否.readyState == 4意味着浏览器中的所有对象都已加载并准备就绪?后台的任何ajax 调用是否仍在“工作”或必须在浏览器返回之前完成.readyState=4?弹性应用程序呢?

这种行为浏览器是否独立?我在 IE 8(和 firefox 3.6.x)之后

4

2 回答 2

3

如果浏览器实现正确,快速回答是肯定的。

见这里: http: //www.whatwg.org/specs/web-apps/current-work/multipage/dom.html#current-document-readiness

于 2012-02-29T00:14:45.080 回答
2

我会说不。如果我理解这里的讨论,那么使用的 readyState 仅指测试 javascript,没有别的。要等待文档本身被加载,您需要挂钩document.readyState并等待它变为"complete". 在这种情况下,一旦 HTML 解析完成,这document.readyState将是"complete"一劳永逸的,并且不会受到任何 XMLHttpRequest 的影响。Flash 插件可以或不可以启动;肯定会有很多 javascript 在运行;例如$(function() {}),在 jquery 中构造通常意味着只有在浏览器达到“完成”状态后,javascript 代码才能开始执行。

为了测试是否有任何异步请求正在进行,我建议以某种方式挂钩所有 XMLHttpRequests 的 readyState 事件并使其更新全局变量。

于 2012-03-06T20:33:20.197 回答