JS判断页面 请求是否完成

SucreLiu04 2015-06-26 03:30:23
JS判断页面 请求是否完成。

网上找了一大把都是说页面加载完成的判断。

这里
加载的意思是:把HTML渲染到浏览器。
请求的意思是:浏览器向服务器请求内容。
情景:在自动测试中,要等待页面完全加载后才能进行下一步操作,判断页面加载完成了,只能说明页面已经请求完成到本地的内容,如果判断的时候还有内容因为网速等原因没有请求到本地。判断页面加载完成就不能达到预期的效果。所以想请教一下各位大神支点招。能不能判断正在请求服务器的内容已经请求完成了。

浏览器有请求没有完成的时候标题旁会有个图标在转。


各位大神们这个判断能做处理么?
...全文
1906 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
SucreLiu04 2015-06-29
  • 打赏
  • 举报
回复
引用 2 楼 zuo_hy 的回复:
浏览器自己的机制吧
对,是浏览器自己的,但是我想知道它是怎么做判断的。我们自己有没有办法像它那样做判断处理。
SucreLiu04 2015-06-29
  • 打赏
  • 举报
回复
引用 1 楼 showbo 的回复:
不明白你要说什么东东,window.onload就是所有资源都下载完毕后才会执行的事件 如果是html下载完毕,不管资源是否下载完毕,你直接在html结束标签后执行js代码
<html>..
</html>
<script>
alert('html全部下载完毕');
</script>
谢谢你的回复: 现在的情形是需要写一个JS来判断服务请求是否完成。 而不是等Onload后再写JS.
SucreLiu04 2015-06-29
  • 打赏
  • 举报
回复
问题解决: 方法很一般,不过能解决问题也就差不多了。呵呵! function GetFrameState(frm) { var framedoc = frm.document || frm.contentWindow.document; var ret = false; console.log(framedoc.readyState); if (framedoc.readyState == 'complete') { ret = true; var frms = frm.frames; if (frms && frms.length > 0) { for (var i = 1; i < frms.length; i++) { if (frms[i].document.URL == 'about:blank') //current iframe request unfinished. return false; console.log(frms[i].document.URL); if (frms[i].attachEvent) { //document is loading for IE . frms[i].attachEvent("onload", function () { return false; }); } else { //document is loading for other browsers . frms[i].onload = function () { return false; }; } } } } return ret; } GetFrameState(window.top); GetFrameState()方法,可以判断所有Iframe 是否已经加载完成,有点误差,但不影响。
弘毅致远 2015-06-26
  • 打赏
  • 举报
回复
浏览器自己的机制吧
Go 旅城通票 2015-06-26
  • 打赏
  • 举报
回复
不明白你要说什么东东,window.onload就是所有资源都下载完毕后才会执行的事件 如果是html下载完毕,不管资源是否下载完毕,你直接在html结束标签后执行js代码
<html>..
</html>
<script>
alert('html全部下载完毕');
</script>

87,921

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧