js如何判断页面是否加载完成啊

吉他猪 2012-07-28 08:35:55
如题包括所有的图片和flash全部加载完成以后才让一个不可用的按钮恢复可用
...全文
10659 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
不错还是能学到
吉他猪 2012-07-29
  • 打赏
  • 举报
回复
非常感谢,能不能提供一个比较详细的jquery手册啊,我这里就一个中文文档不是很全,你上面说的readyState属性和值都没有介绍
MiceRice 2012-07-29
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]
jquery有方法验证图片是否加载完成吗
[/Quote]

jQuery本身没有,jQuery用于快捷的便利所有 img 标签。

img标签对象,有一个属性,叫做:readyState,取值如下:
uninitialized: Object is not initialized with data.
loading: Object is loading its data.
loaded: Object has finished loading its data.
interactive: User can interact with the object even though it is not fully loaded.
complete: Object is completely initialized.

检测主要靠这个,类似于:
counter = 0;
$("img").each(function(){
if (this.readyState==loaded || this.readyState==complete) counter++;
});
if (counter >= 10) alert("所有图片装载完毕!");



另一种做法,是给所有<img>增加onload事件,在onload事件中,给计数器做累加,达到一定数量则判定为全部图片装载完毕
吉他猪 2012-07-29
  • 打赏
  • 举报
回复
jquery有方法验证图片是否加载完成吗
吉他猪 2012-07-29
  • 打赏
  • 举报
回复
onload还是当DOM对象全部加在完后才之行的吧,但是不能验证图片加载是否完成
吉他猪 2012-07-29
  • 打赏
  • 举报
回复
算了不搞了,知道怎么判断就差不过了,本来一共是要显示最多64张图的,我就去判断显示大于55就算全部加载完成了,取个大概吧也不用太准确了,谢谢了,
吉他猪 2012-07-29
  • 打赏
  • 举报
回复
有办法判断图片失败也算加载完成吗 显示X也算在count中
MiceRice 2012-07-29
  • 打赏
  • 举报
回复
是的。

其实。。。真没见过有这种需求的。。。

如果某张图片特别重要,必须显示出来,可以仅为那张图片<img>增加 onload 事件。

吉他猪 2012-07-29
  • 打赏
  • 举报
回复
嗯,还真是不好办哦,还需要定时去检查 这种基于所有页面内容装载完成后再做其他操作的应用多吗
MiceRice 2012-07-29
  • 打赏
  • 举报
回复
要用 window.setInterval 定时去检测下,检测完毕后要删除该定时器。

div 没有 onload 事件。
吉他猪 2012-07-29
  • 打赏
  • 举报
回复
谢谢,还有个问题

$(function()
{
$("#query").click(function()
{
$("#main").empty();
this.disabled = true;
$.post("QueryImageServlet",
{
keyword:$("#keyword").val(),
picSource: $("input[name=picSource]:checked").val()
},function(respData)
{
var html = "";
var count = 0;
for(var i=0;i<respData.length;i++) {
html += "<img src='" + respData[i] +"' width='200px' height='200px'/>";
};
$("#main").append($(html));
$("#main").show();
$("#main img").each(function(){
if(this.readyState == "loaded" || this.readyState == "complete")
count++;
});
alert(count);
if(count == respData.length) {
$("#query")[0].disabled = false;
}
});
});
$("#main").hide();
});

<div id="header">
<input type="text" id="keyword" size="40"/>   <input type="button" value="Submit" id="query"> 
<input type="button" value="Save" width="40px" id="download"/>  
<input type="radio" name="picSource" value="google" checked><font size="5px">Google</font> <input type="radio" name="picSource" value="flickr"><font size="5px">Flickr</font>
</div>
<div id="main">


这里一显示maindiv我就去判断img是否加载完成,此时img都是未装载完成的所有count都是0,那什么时候去判断img是否装载完成了,div未上是否也可以用onload来判断里面内容是否装载成功?
MiceRice 2012-07-29
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]
非常感谢,能不能提供一个比较详细的jquery手册啊,我这里就一个中文文档不是很全,你上面说的readyState属性和值都没有介绍
[/Quote]
http://download.csdn.net/detail/ldh911/4187933
下载后记得评论,把1分挣回来,别浪费了。


[Quote=引用 9 楼 的回复:]
错了。readystate是dom对象的属性哦
[/Quote]
当然是 dom 对象属性,<img> 就是个dom对象。。。
吉他猪 2012-07-29
  • 打赏
  • 举报
回复
错了。readystate是dom对象的属性哦
吉他猪 2012-07-29
  • 打赏
  • 举报
回复
找到了直接看官网的就可以了
msflwl 2012-07-28
  • 打赏
  • 举报
回复
正解


[Quote=引用 2 楼 的回复:]

<html>
<head>
<title></title>
<script>
window.onload=function(){
alert(1234);
};
</script>
</head>
<body></body>
</html>
[/Quote]
java小牛1 2012-07-28
  • 打赏
  • 举报
回复
<html>
<head>
<title></title>
<script>
window.onload=function(){
alert(1234);
};
</script>
</head>
<body></body>
</html>
MiceRice 2012-07-28
  • 打赏
  • 举报
回复
没有很直接的判断方式。。。只能定时的每个图片每个图片的去检测。不过用jQuery的话倒也不算太麻烦。

<body onload="whenloaded();" ....>

这个会在HTML本身加载完毕后触发,但不受图片影响。
通过页面性能测试概念+页面加载过程+页面性能指标+页面性能测试工具的学习,可以学到如下内容:①WEB网站页面性能的指标(白屏时间、首屏加载完成时间、FP、FCP、DCL、CLS、FPS等);②WEB网站页面性能测试策略;③WEB网站页面加载过程(前端基础语言:HTML+CSS+JavaScript,DOM、CSSOM、渲染树、布局、绘制);④WEB网站页面性能测试工具的实际操作和功能介绍(开发者工具:控制台、网络、性能、Lighthouse、FPS渲染统计等);⑤WEB网站页面性能测试报告编写。⑥WEB网站页面性能测试步骤和实际操作。课程内容:第一章:课程简介1、课程介绍2、课程大纲第二章:页面性能测试1、页面性能测试概念2、页面性能测试专业术语3、页面性能测试策略第三章:页面加载过程1、HTML概念,HTML5实例,HTML5文档2、CSS概念,CSS实例,CSS文档3、JavaScript概念,JavaScript脚本实例和作用4、DOM和CSSOM理解5、HTML5渲染引擎理解6、HTML5页面内容渲染的过程,HTML渲染树第四章:页面性能测试工具1、页面性能测试具体工具2、Chrome开发者工具介绍第五章:页面性能测试工具-控制台:window.performance1、控制台:window.performance介绍2、window.performance.timing执行结果加载字段理解3、window.performance.timing执行结果属性对应页面阶段理解4、window.performance页面性能参数计算5、window.performance页面性能关键指标计算第六章:页面性能测试工具-网络面板1、Chrome-开发者工具-网络面板介绍2、Chrome-开发者工具-网络-瀑布流指标第七章:页面性能测试工具-性能面板1、Chrome-开发者工具-性能面板-使用方法2、Chrome-开发者工具-性能面板介绍3、Chrome-开发者工具-性能面板-控制按钮区域4、Chrome-开发者工具-性能面板-Overview区域5、Chrome-开发者工具-性能面板-火焰图区域6、Chrome-开发者工具-性能面板-内存图区域7、Chrome-开发者工具-性能面板-统计汇总区域8、Chrome-开发者工具-性能面板-统计汇总区域-摘要内容9、Chrome-开发者工具-性能面板-统计汇总区域-事件时长、调用、发生顺序第八章:页面性能测试工具-FPS监控1、Chrome-开发者工具-FPS监控-FPS介绍、FPS视觉效果、FPS查看方法第九章:页面性能测试-Lighthouse面板1、Chrome-开发者工具-Lighthouse介绍、操作方法、运行的生命周期2、Chrome-开发者工具-Lighthouse报告指标分析3、Chrome-开发者工具-Lighthouse的报告优化建议第十章:页面性能测试工具-Performance insights面板1、Chrome-开发者工具-Performance insights操作方法2、Chrome-开发者工具-Performance insights分析报告第十一章:网速调研1、全国网速的调研和本机网速测试第十二章:页面性能测试总结1、页面性能测试指标采集方式2、页面性能测试报告3、页面性能测试-操作步骤​

81,092

社区成员

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

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