关于div赋值的执行顺序问题!请教啊 顺序加载 执行 1、加载脚本2、显示IDV3、赋值 4、显示DIV新的值因为加载比较快 看到的效果就是直接显示赋值过的DIV脚本执行完才显示效果是因为js执行有个线程执行一个显示一个 那就用异步吧 设个定时器 我做过的 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <html> <head> <script type="text/javascript"> function $(id) { return document.getElementById(id);}function init() { $("one").innerHTML='one'; alert('see');//可以看到已经赋值了 $("two").innerHTML='two'; $("three").innerHTML='three'; $("four").innerHTML='four'; $("five").innerHTML='five';} </script> </head> <body> <div id="one"></div> <div id="two"></div> <div id="three"></div> <div id="four"></div> <div id="five"></div> </body></html><script> init();</script> window.onload=init;//这样确保所有信息都加载完后再执行init函数 应该是执行一个赋值,在HTML页面里面显示一个,时间太短了,察觉不到时间差.用个定时器吧. 关于显示顺序,并不难<html> <head> <script src="start.js" type="text/javascript"></script><!-- 这里开始加载start.js,把里面的函数和方法及对象加载到客户端--> </head> <body> <div id="one"></div> <div id="two"></div> <div id="three"></div> <div id="four"></div> <div id="five"></div> </body></html><script> init();//这里开始调用已经加载的函数</script>function $(id) {{//这个函数在加载start.js时已加载完毕 return document.getElementById(id);}function init() {//这个函数在加载start.js时已加载完毕 $("one").innerHTML='one';//执行这个在网页上已赋值显示 $("two").innerHTML='two';//这个是几乎同时与上面的执行的,间隔很小,执行速度快,看不出明显的效果,以下一样 $("three").innerHTML='three'; $("four").innerHTML='four'; $("five").innerHTML='five';}如果想要看到效果,对每个进行延时吧,或者再异步加载 是所有的赋值结束 甚至 所在脚本执行完 才会在HTML页面显示赋值结果 function init() { $("one").innerHTML='one'; alert('one'); $("two").innerHTML='two'; alert('two'); $("three").innerHTML='three'; alert('three'); $("four").innerHTML='four'; alert('four'); $("five").innerHTML='five'; alert('five');}你把这个函数变成这个就能看到他的赋值顺序了 是所有的赋值结束 甚至 所在脚本执行完 才会在HTML页面显示赋值结果 这个是不对的哦,你用我给你的例子一看就知道了,应该是时间太短,几乎是同时执行的,间隔很小,执行速度快,看不出明显的效果 加 alert 并不能说明该问题 并不是你说的所有的赋值结束 甚至 所在脚本执行完 才会在HTML页面显示赋值结果 加一个alert就能完全的说明如果按你说的所有的赋值结束 甚至 所在脚本执行完 才会在HTML页面显示赋值结果,那么执行一个alert,是不应该出现一个值的,完全下面的还没进行赋值 是所有的赋值结束 甚至 所在脚本执行完 才会在HTML页面显示赋值结果 按你的这个说法,他应该是在弹出alert('four');这个以后才会同时在页面上显示几个值 HTML code<html> <head> <script type="text/javascript"> function $(id) { return document.getElementById(id);}function init() { $("one").innerHTML='one'; alert('see');//可以看到已经赋值了 $("two").innerHTML='two'; $("three").innerHTML='three'; $("four").innerHTML='four'; $("five").innerHTML='five';} </script> </head> <body> <div id="one"></div> <div id="two"></div> <div id="three"></div> <div id="four"></div> <div id="five"></div> </body></html><script> init();</script>-----------------------------这个例子确实说明了,是执行 $("one").innerHTML='one'; 语句后,HTML会立刻显示one字符在页面上!另外!我现情况是,执行一个HTML,这个HTML会,加载一个JSON格式的JS,因为数据有些大所以刷新的时候画面会白一下,用户体验不是很好!我的想法是先显示出一部分来。但是如果按照执行完一句 $("one").innerHTML='one';就会立刻显示出来的话。就不用用什么特别的方法一部分一部分的显示了!可是我的页面白一下不知道有没有什么办法! 那模拟个loadding.....进度条 判断页面是否加载完毕 白一下??这个需要加载JS的,再加载JS的时候页面空白一下是正常的,你可以做一个滚动条的提示,说明数据正在加载! 如果想按顺序来可以采用onpropertychange来依次触发 function $(id) { return document.getElementById(id);}function getData(){ var vXmlHTTP = new ActiveXObject("Microsoft.XMLHTTP"); var vUrl = "http://topic.csdn.net/u/20080508/14/2691f29f-75f2-49c5-876c-57ce0d72ebdf.html?seed=" + parseInt(Math.random()*1000); if ( ! vXmlHTTP) { alert("Microsoft.XMLHTT创建错误!"); return; } vXmlHTTP.open("POST", vUrl, false); vXmlHTTP.send(); }function dely_function(){ for(var i=0;i<10;i++) { getData(); }}function init() { dely_function(); $("one").innerHTML='one'; alert("aaa"); dely_function(); $("two").innerHTML='two'; dely_function(); $("three").innerHTML='three'; dely_function(); $("four").innerHTML='four'; dely_function(); $("five").innerHTML='five';} 加alert是可以显示出第一个div 的值但是 2345 div 还是同时显示的 貌似delay写错 -_- 加alert是可以显示出第一个div 的值 但是 2345 div 还是同时显示的 貌似delay写错 -_-你这个说不过去吧我就按你的这个来 dely_function(); $("one").innerHTML='one'; alert("aaa"); dely_function(); $("two").innerHTML='two'; alert("aaa1"); dely_function(); $("three").innerHTML='three'; alert("aaa2"); dely_function(); $("four").innerHTML='four'; alert("aaa3"); dely_function(); $("five").innerHTML='five';你自己看是不是同时显示的 测试结果是 加alert是可以显示出第一个div 的值 但是 2345 div 还是同时显示的 而且中间的时间间隔还比较长 加alert是可以显示出第一个div 的值 但是 2345 div 还是同时显示的 貌似delay写错 -_- 你这个怎么说都说不过去你2345这几个是时间太短,几乎是同时执行的,间隔很小,执行速度快,看不出明显的效果不信你每个后面都加一个alert你就知道了 你中间间隔时间并不是2345的显示问题时间,是你这个 dely_function(); 函数加载慢造成的! 实际中是不可能有alert的我的测试环境 win2003 ie 6 sp2 结果是 同时显示 呵呵,看来你又要步kisslan 的后尘,钻牛角尖了! 你这是钻牛角尖啊!!!是所有的赋值结束 甚至 所在脚本执行完 才会在HTML页面显示赋值结果 按你的这个说法,他应该是在弹出alert('four'); 这个以后才会同时在页面上显示几个值,而不会是alert一个出现一个! 你自己冷静下来再好好想想是不是你的这个说法“是所有的赋值结束 甚至 所在脚本执行完 才会在HTML页面显示赋值结果 ”是不是应该在弹出alert('four'); 这个以后才会同时在页面上显示几个值,而不是,弹出一个alert就显示一个 但是实际情况却不是如你说的在弹出alert('four'); 这个以后才会同时在页面上显示几个值,而是弹出一个alert就显示一个实际中是不可能有alert的 我们是在讨论他们的执行顺序,是如你所说的“是所有的赋值结束 甚至 所在脚本执行完 才会在HTML页面显示赋值结果”还是,赋值一个就显示一个 白一下??这个需要加载JS的,再加载JS的时候页面空白一下是正常的,你可以做一个滚动条的提示,说明数据正在加载!--------白一下我知道正常!可是关键是时间长短啊!我先数据有点多所以我希望有个顺序吧!能先显示一点用户体验好一点!所以来问加载顺序啊! chinmo 总说人钻牛角啊我们只是对事情认真啊。。我可能理解能力比较差但是也不要这么直接说我啊55哇55哇55哇55哇55哇55哇55哇55哇55哇55哇55哇55哇55哇55哇55哇55哇55哇55哇55哇55哇55哇55哇55哇55哇55哇55哇 我发现确实是执行一个执行一句立刻就可以在html显示出来啊~~~~~!所以现在可能已经是我的想法了就是执行完成赋值一个DIV立刻就可以在页面上显示这个div数值!!!那你们还在说的是什么啊 !?我都乱啦<html> <head> <script src="start.js" type="text/javascript"></script> </head> <body> <div id="one"></div> <div id="two"></div> <div id="three"></div> <div id="four"></div> <div id="five"></div> </body></html><script> init();</script>start.jsfunction $(id) { return document.getElementById(id);}function init() { $("one").innerHTML='one'; alert("who1"); $("two").innerHTML='two'; alert("who2"); $("three").innerHTML='three'; alert("who3"); $("four").innerHTML='four'; $("five").innerHTML='five';} 同意,JS,DOM,Ajax一塌糊涂! 不要我就要先加载一点一般作为一个用户来说,你显示一点用户感觉反而更加不好,你还不如做一个进度条来说明数据在加载你看下sina你就知道啊http://comment4.news.sina.com.cn/comment/skin/default.html?channel=cj&newsid=31-1-4843495你多刷刷你就发现更多精彩留言 那几个字体总是先出来我想她是一个静态的页面。然后后面才加载上js或者xml里面的数据的!我就想有没有js的办法可以先加载一部分数据这样用户体验好一些啊 一样的其实sina被进度条换成了我们所看到的更多精彩留言 对啊我的意思也是这两个问题不是一个问题么?1.赋值操作什么时候反应在用户界面2.楼主需求的效果是 赋值一个就显示一个 可是你们执行一下下面这个例子!确实是执行完$("one").innerHTML='one';语句后立刻one就显示在了页面上啊<html> <head> <script src="start.js" type="text/javascript"></script> </head> <body> <div id="one"></div> <div id="two"></div> <div id="three"></div> <div id="four"></div> <div id="five"></div> </body></html><script> init();</script>start.js JScript codefunction $(id) { return document.getElementById(id);}function init() { $("one").innerHTML='one'; alert("who1"); $("two").innerHTML='two'; alert("who2"); $("three").innerHTML='three'; alert("who3"); $("four").innerHTML='four'; $("five").innerHTML='five';} 加alert确实可以显示赋值结果 但是不现实呀 如何用代码判断IE是32位还是64位的? Ext is not defined Ext版本3.2 求助一个难度较大的老问题,请高手进来看看 如何使用JS来获取本地的一个zip的大小? jscript如何设置jsp中的控件(inputtext)的光标呢? 在线 如何寻找页面中的字符串 高手进来帮忙,身份判断的问题。 懂jQuery UI和ARIA的前辈帮忙指点下! 表单提交问题 请问在JS中怎么判断一个字符是中文还是数字或是其它的字符呢?还有中文算作2个字符吗?( 事件执行的问题 innerHTML中的链接无效?
<html>
<head>
<script type="text/javascript">
function $(id) {
return document.getElementById(id);
}
function init() {
$("one").innerHTML='one';
alert('see');//可以看到已经赋值了
$("two").innerHTML='two';
$("three").innerHTML='three';
$("four").innerHTML='four';
$("five").innerHTML='five';
}
</script>
</head>
<body>
<div id="one"></div>
<div id="two"></div>
<div id="three"></div>
<div id="four"></div>
<div id="five"></div>
</body>
</html><script>
init();
</script>
<html>
<head>
<script src="start.js" type="text/javascript"></script><!-- 这里开始加载start.js,把里面的函数和方法及对象加载到客户端-->
</head>
<body>
<div id="one"></div>
<div id="two"></div>
<div id="three"></div>
<div id="four"></div>
<div id="five"></div>
</body>
</html><script>
init();//这里开始调用已经加载的函数
</script>function $(id) {{//这个函数在加载start.js时已加载完毕
return document.getElementById(id);
}
function init() {//这个函数在加载start.js时已加载完毕
$("one").innerHTML='one';//执行这个在网页上已赋值显示
$("two").innerHTML='two';//这个是几乎同时与上面的执行的,间隔很小,执行速度快,看不出明显的效果,以下一样
$("three").innerHTML='three';
$("four").innerHTML='four';
$("five").innerHTML='five';
}如果想要看到效果,对每个进行延时吧,或者再异步加载
是所有的赋值结束 甚至 所在脚本执行完 才会在HTML页面显示赋值结果
$("one").innerHTML='one';
alert('one');
$("two").innerHTML='two';
alert('two');
$("three").innerHTML='three';
alert('three');
$("four").innerHTML='four';
alert('four');
$("five").innerHTML='five';
alert('five');}你把这个函数变成这个就能看到他的赋值顺序了
是所有的赋值结束 甚至 所在脚本执行完 才会在HTML页面显示赋值结果
这个是不对的哦,你用我给你的例子一看就知道了,应该是时间太短,几乎是同时执行的,间隔很小,执行速度快,看不出明显的效果
如果按你说的所有的赋值结束 甚至 所在脚本执行完 才会在HTML页面显示赋值结果,那么执行一个alert,是不应该出现一个值的,完全下面的还没进行赋值
按你的这个说法,他应该是在弹出alert('four');
这个以后才会同时在页面上显示几个值
<html>
<head>
<script type="text/javascript">
function $(id) {
return document.getElementById(id);
}
function init() {
$("one").innerHTML='one';
alert('see');//可以看到已经赋值了
$("two").innerHTML='two';
$("three").innerHTML='three';
$("four").innerHTML='four';
$("five").innerHTML='five';
}
</script>
</head>
<body>
<div id="one"></div>
<div id="two"></div>
<div id="three"></div>
<div id="four"></div>
<div id="five"></div>
</body>
</html><script>
init();
</script>-----------------------------这个例子确实说明了,是执行 $("one").innerHTML='one'; 语句后,HTML会立刻显示one字符在页面上!
另外!我现情况是,执行一个HTML,这个HTML会,加载一个JSON格式的JS,因为数据有些大
所以刷新的时候画面会白一下,用户体验不是很好!我的想法是先显示出一部分来。但是如果按照
执行完一句 $("one").innerHTML='one';就会立刻显示出来的话。就不用用什么特别的方法一部分一部分的显示了!
可是我的页面白一下不知道有没有什么办法!
return document.getElementById(id);
}function getData()
{
var vXmlHTTP = new ActiveXObject("Microsoft.XMLHTTP");
var vUrl = "http://topic.csdn.net/u/20080508/14/2691f29f-75f2-49c5-876c-57ce0d72ebdf.html?seed=" + parseInt(Math.random()*1000);
if ( ! vXmlHTTP)
{
alert("Microsoft.XMLHTT创建错误!");
return;
}
vXmlHTTP.open("POST", vUrl, false);
vXmlHTTP.send();
}function dely_function()
{
for(var i=0;i<10;i++)
{
getData();
}
}function init() {
dely_function();
$("one").innerHTML='one';
alert("aaa");
dely_function();
$("two").innerHTML='two';
dely_function();
$("three").innerHTML='three';
dely_function();
$("four").innerHTML='four';
dely_function();
$("five").innerHTML='five';
}
我就按你的这个来 dely_function();
$("one").innerHTML='one';
alert("aaa");
dely_function();
$("two").innerHTML='two';
alert("aaa1");
dely_function();
$("three").innerHTML='three';
alert("aaa2");
dely_function();
$("four").innerHTML='four';
alert("aaa3");
dely_function();
$("five").innerHTML='five';你自己看是不是同时显示的
你2345这几个是时间太短,几乎是同时执行的,间隔很小,执行速度快,看不出明显的效果
不信你每个后面都加一个alert你就知道了
你中间间隔时间并不是2345的显示问题时间,是你这个 dely_function(); 函数加载慢造成的!
你这是钻牛角尖啊!!!是所有的赋值结束 甚至 所在脚本执行完 才会在HTML页面显示赋值结果
按你的这个说法,他应该是在弹出alert('four');
这个以后才会同时在页面上显示几个值,而不会是alert一个出现一个!
是不是应该在弹出alert('four'); 这个以后才会同时在页面上显示几个值,而不是,弹出一个alert就显示一个
我们是在讨论他们的执行顺序,是如你所说的“是所有的赋值结束 甚至 所在脚本执行完 才会在HTML页面显示赋值结果”
还是,赋值一个就显示一个
--------白一下我知道正常!可是关键是时间长短啊!我先数据有点多所以我希望有个顺序吧!能先显示一点用户体验好一点!所以来问加载顺序啊!
我可能理解能力比较差但是也不要这么直接说我啊
55哇55哇55哇55哇55哇55哇55哇55哇55哇55哇55哇55哇55哇55哇55哇55哇55哇55哇55哇55哇55哇55哇55哇55哇55哇55哇
就是执行完成赋值一个DIV立刻就可以在页面上显示这个div数值!!!
那你们还在说的是什么啊 !?我都乱啦<html>
<head>
<script src="start.js" type="text/javascript"></script>
</head>
<body>
<div id="one"></div>
<div id="two"></div>
<div id="three"></div>
<div id="four"></div>
<div id="five"></div>
</body>
</html><script>
init();
</script>start.js
function $(id) {
return document.getElementById(id);
}
function init() {
$("one").innerHTML='one';
alert("who1");
$("two").innerHTML='two';
alert("who2");
$("three").innerHTML='three';
alert("who3");
$("four").innerHTML='four';
$("five").innerHTML='five';
}
同意,JS,DOM,Ajax一塌糊涂!
一般作为一个用户来说,你显示一点用户感觉反而更加不好,你还不如做一个进度条来说明数据在加载
你看下sina你就知道啊http://comment4.news.sina.com.cn/comment/skin/default.html?channel=cj&newsid=31-1-4843495
你多刷刷
你就发现更多精彩留言 那几个字体总是先出来我想她是一个静态的页面。然后后面才加载上js或者xml里面的数据的!我就想有没有js的办法可以先加载一部分数据这样用户体验好一些啊
后立刻one就显示在了页面上啊
<html>
<head>
<script src="start.js" type="text/javascript"></script>
</head>
<body>
<div id="one"></div>
<div id="two"></div>
<div id="three"></div>
<div id="four"></div>
<div id="five"></div>
</body>
</html><script>
init();
</script>start.js JScript codefunction $(id) {
return document.getElementById(id);
}
function init() {
$("one").innerHTML='one';
alert("who1");
$("two").innerHTML='two';
alert("who2");
$("three").innerHTML='three';
alert("who3");
$("four").innerHTML='four';
$("five").innerHTML='five';
}