关于页面加载的同时执行js问题

xsfony 2011-09-05 11:01:10
如题,比如我想做个网速太慢的时候弹出提示框。在页面刚进去的时候就执行段js[这里的js意思是3秒钟后设置div为显示的],
在页面的最下面在写个js[如果提示网速慢的div已打开,这里就关闭],

代码:

<script style="text/javascript">
var is_est_show_wangs = true;
var is_show_cols = false;
function show_wangs_div(){
if(is_est_show_wangs){
document.getElementById('Layer1').style.display = '';
is_show_cols = true;
}
}
setTimeout(show_wangs_div,3000);
</script>

</head>

<body>

<div id="Layer1" style="display:none;">网速太慢</div>
<!--这里为了测试是程序控制3秒后继续向下执行-->
ADSSAD
</body>
</html>
<script>
is_est_show_wangs = false;
if(!is_show_cols){
document.getElementById('Layer1').style.display = 'none';
}
</script>


但是 setTimeout都是在页面加载完了才开始执行的,怎么做只要运行到setTimeout就开始执行了,而不是加载完了才执行???
...全文
498 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
BLUE_LG 2011-09-05
  • 打赏
  • 举报
回复
用ajax解决吧。。。
设定获取时间限制。。
xsfony 2011-09-05
  • 打赏
  • 举报
回复
3楼的和4楼的看上去是那样执行的,但是事实上setTimeout确实只是在页面加载完了才运行

应该有方法可以解决,在浏览qq空间的时候有时候网速太慢在还没有加载完的时候都会有提示的,5楼,还是谢谢你啊
001007009 2011-09-05
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 xsfony 的回复:]
不是,你这样写的话程序运行玩了才会执行,我想要的是在程序运行了3秒还没有加载完得情况下就提示网速太慢,加载完了就不提示了
[/Quote]

楼主所谓的加载完是什么意思?是指img flash等元素加载完毕,还是dom加载。
其实不管是不是这里讲得两种加载情况,对这个功能我表示很无助。
1。js是检测元素的加载,比如第一秒检测元素是否加载完毕,第二秒。。。第N秒(就是所谓的线程?),这样的话就只有setTimeout或者setInterval 是不停地检测。
2。好比一些jsku使用的domready,待dom加载完毕后执行,至于计算时间差(第一个dom与最后一个dom),,,表示无助。。。
hch126163 2011-09-05
  • 打赏
  • 举报
回复
<body >

<script style="text/javascript">
var isLoad = false;
setTimeout(function(){if(!isLoad ){alert("网速慢");}},3000);
</script>

<div>
页面内容
</div>
</body>

<script style="text/javascript">
window.onload=function(){ isLoad = true;};
</script>
光曰不日 2011-09-05
  • 打赏
  • 举报
回复
呵呵,请教楼主如何让这样的页面在自己的开发环境中加载需3秒以上的?
顺带,html页面就是顺序执行的,包括嵌套其中的script,你的写法就是在页面未加载完成的时候执行的setTimeout(show_wangs_div,3000);
xsfony 2011-09-05
  • 打赏
  • 举报
回复
不是,你这样写的话程序运行玩了才会执行,我想要的是在程序运行了3秒还没有加载完得情况下就提示网速太慢,加载完了就不提示了
001007009 2011-09-05
  • 打赏
  • 举报
回复

<body>

<div id="Layer1" style="display:none">网速太慢</div>
<!--这里为了测试是程序控制3秒后继续向下执行-->
ADSSAD
<script style="text/javascript">
var is_est_show_wangs = true;
var is_show_cols = false;
function show_wangs_div(){
if(is_est_show_wangs){
document.getElementById('Layer1').style.display = '';
is_show_cols = true;
}
}
setTimeout(show_wangs_div,3000);
</script>
<script>
is_est_show_wangs = false;
if(!is_show_cols){
document.getElementById('Layer1').style.display = 'none';
}
</script>

</body>


楼主这个意思?
豆虫 2011-09-05
  • 打赏
  • 举报
回复
看这样行不 虽然土了点
开始定时的去找页面最后一个元素 如果能拿到 就结束定时器 否则超过规定时间 弹出提示
qq的那个肯定是有后台的

87,989

社区成员

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

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