首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 有谁有办法在这里,延迟50毫秒!,就是让每一个i和下一个i间隔50毫秒 [已结贴,结贴人:nil2000]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • nil2000
    • 等级:
    发表于:2008-05-12 16:43:34 楼主
    HTML code
    <html> <head> <script src="start.js" type="text/javascript"></script> </head> <body> <div id="text0"></div> <div id="text1"></div> <div id="text2"></div> <div id="text3"></div> <div id="text4"></div> <div id="text5"></div> </body> </html> <script> init(); </script>
    start.js
    JScript code
    function $(id) { return document.getElementById(id); } function init() { for (var i=0;i<=5;i++) { $("text"+i).innerHTML=i+""; //有谁有办法在这里,延迟50毫秒!,就是让每一个i和下一个i间隔50毫秒 } }



    200  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-12 16:44:531楼 得分:0
    呵呵 小号??
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-12 17:14:592楼 得分:0
    时间间隔函数啊!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-12 17:17:063楼 得分:0
    JScript code
    var i=0; var timeID=null; timeID = window.setInterval(function(){ if(i<=5) { $('text'+i).innerHTML = i+''; i++; } else { window.clearInterval(timeID); } },50);

    试试
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-12 17:22:034楼 得分:0
    HTML code
    <html> <head> <script type="text/javascript"> var i=0; var timeID=null; function $(id) { return document.getElementById(id); } function init() { timeID = window.setInterval(function(){ if(i<=5) { $('text'+i).innerHTML = i+''; i++; } else { window.clearInterval(timeID); } },50); } </script> </head> <body> <div id="text0"></div> <div id="text1"></div> <div id="text2"></div> <div id="text3"></div> <div id="text4"></div> <div id="text5"></div> </body> </html> <script> init(); </script>


    这样
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • nil2000
    • 等级:
    发表于:2008-05-12 17:35:515楼 得分:0
    JScript code
    function $(id) { return document.getElementById(id); } function init() { /*不行这里还有一大堆代码 。 。 。 。 。 。 */ for (var i=0;i<=5;i++) { /*这里还有一大堆代码用上面那堆代码 。 。 。 。 。 。 */ $("text"+i).innerHTML=i+""; //有谁有办法在这里,延迟50毫秒!,就是让每一个i和下一个i间隔50毫秒 /*这里还有一大堆代码用上面那堆代码 。 。 。 。 。 。 */ } /*不行这里还有一大堆代码 。 。 。 。 。 。 */ }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-12 17:44:466楼 得分:0
    想法是不错的
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-12 17:45:337楼 得分:0
    但是for……
    呵呵,理解for吗?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-12 17:46:218楼 得分:0
    呵呵,帮顶
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • only_endure
    • 等级:
    发表于:2008-05-12 17:54:539楼 得分:0
    setinterval(parm1,parm2)而已 .里面的参数设为1000,即1000毫秒,然后i++,也就是1秒钟i自增1,先了解最简单的,复杂的就会了.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-12 18:13:4710楼 得分:0
    JScript code
    function delay(numberMillis){ var now = new Date(); var exitTime = now.getTime()+numberMillis; while(true){ now = new Date(); if(now.getTime() > exitTime) return; } } document.write('拉可是解放了喀什觉得;阿里山'); delay(50); document.write('拉可是解放了喀什觉得;阿里山'); delay(50); document.write('拉可是解放了喀什觉得;阿里山'); delay(50);

    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-12 21:48:0911楼 得分:0
    为什么非要50毫秒呢?要做动画吗?
    如果非要50毫秒你可以改造一下你的函数将必要的状态保存到全局变量中
    然后下一次从全局变量中读状态就再进行操作就可以了。如果是我我就象下面
    那样做。
    var youGlobalVar;

    function playNext(){
      readGlobalVar();
      doOperate();
      saveGlobalVar();
      window.setInterVal("playNext()",50);
    }

    要不然在函数中间
    休眠50豪秒是很麻烦的
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • nil2000
    • 等级:
    发表于:2008-05-13 10:15:3812楼 得分:0
    //alert(i);
    //经过我alert(i)的测试,发现每执行完一句$("text"+i).innerHTML页面上相关的DIV就会立刻显示该数值!
    //我另外测到,我的留言板,如果每页只显示三条留言,速度就非常快!
    //所以我打算利用innerHTML的特性,每三条就显示一次,然后延时一下,虽然总时间长了
    //但是用户体验好了,但是我这样写却没有达到我希望的效果不知道为什么?


    HTML code
    <html> <head> <script src="start.js" type="text/javascript"></script> </head> <body> <div id="text0"></div> <div id="text1"></div> <div id="text2"></div> <div id="text3"></div> <div id="text4"></div> <div id="text5"></div> </body> </html> <script> init(); </script>

    start.js
    JScript code
    function $(id) { return document.getElementById(id); } function init() { /*不行这里还有一大堆代码 。 。 */ for (var i=0;i<=5;i++) { $("text"+i).innerHTML=i+""; //alert(i); //经过我alert(i)的测试,发现每执行完一句$("text"+i).innerHTML页面上相关的DIV就会立刻显示该数值! //我另外测到,我的留言板,如果每页只显示三条留言,速度就非常快! //所以我打算利用innerHTML的特性,每三条就显示一次,然后延时一下,虽然总时间长了 //但是用户体验好了,但是我这样写却没有达到我希望的效果不知道为什么? delay(1000) //有谁有办法在这里,延迟50毫秒!,就是让每一个i和下一个i间隔50毫秒 /*这里还有一大堆代码用上面那堆代码 。 */ } /*不行这里还有一大堆代码 。 。 */ } function delay(numberMillis){ var now = new Date(); var exitTime = now.getTime()+numberMillis; while(true){ now = new Date(); if(now.getTime() > exitTime) return; } }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-13 10:30:5013楼 得分:0
    你的delay函数是一直耗CPU的
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-13 10:56:0514楼 得分:0
    如果是50毫秒,估计不会太卡
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-13 10:59:1715楼 得分:0
    为什么非要停顿50ms呀,用setInterval(参数1,参数2),可以实现的!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-13 11:21:2316楼 得分:0
    setInterval都是新开进程,不延时
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-13 12:19:1717楼 得分:0
    呵呵,用for你想实现演示?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-13 12:26:3318楼 得分:0
    用for是做不到的
    其实15楼他说的没错!但是你不能用for
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-13 12:28:0919楼 得分:0
    你想要的效果是不是如www.cctv258.com中间的那个文字广告和图片广告那个显示方式
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-13 13:33:4020楼 得分:0
    引用 14 楼 wzy_love_sly 的回复:
    如果是50毫秒,估计不会太卡

    写程序就只考虑50毫秒么,以后如果有个需求,让你延迟5秒怎么办
    既然不能实现真正的延迟,为什么就不能换个变通的方法呢
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-13 16:47:2021楼 得分:0
    用AJAX呀。50毫秒读取一次.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-13 17:42:1322楼 得分:0
    /经过我alert(i)的测试,发现每执行完一句$("text"+i).innerHTML页面上相关的DIV就会立刻显示该数值!
            //我另外测到,我的留言板,如果每页只显示三条留言,速度就非常快!
            //所以我打算利用innerHTML的特性,每三条就显示一次,然后延时一下,虽然总时间长了
            //但是用户体验好了,但是我这样写却没有达到我希望的效果不知道为什么?


    达到这样的效果不需要你上面哪样.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • nil2000
    • 等级:
    发表于:2008-05-22 14:03:3223楼 得分:0
    那怎么做?
    不能用ajax.........................这样对服务器造成太大压力!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-22 14:18:0624楼 得分:0
    引用 19 楼 chinmo 的回复:
    你想要的效果是不是如www.cctv258.com中间的那个文字广告和图片广告那个显示方式
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-22 14:53:3025楼 得分:0
    <html>
        <head>
            <script src="start.js" type="text/javascript"> </script>
        </head>
        <body>
                <div id="text0"> </div>
                <div id="text1"> </div>
                <div id="text2"> </div>
                <div id="text3"> </div>
                <div id="text4"> </div>
                <div id="text5"> </div>
        </body>
    </html>
    <script>
    var i=0;
    init();
    function $(id) {
        return document.getElementById(id);
    }

    function init() {
      for(var j=0;j <=5;j++) {
    setTimeout("haha()",5000);
    i++;
        }
    }
    function haha() {
            $("text"+i).innerHTML=i+"";
    }
    </script>
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-22 15:24:1826楼 得分:200
    这样倒是可以,但结束不了:
    <html>
        <head>
            <script src="start.js" type="text/javascript"> </script>
        </head>
        <body>
                <div id="text0"> </div>
                <div id="text1"> </div>
                <div id="text2"> </div>
                <div id="text3"> </div>
                <div id="text4"> </div>
                <div id="text5"> </div>
        </body>
    </html>
    <script>
    var i=0;
    setInterval("haha();", 500);
    function haha() {
    if (i <5){
    document.getElementById("text"+i).innerHTML=i+"";
    i++;
    }
    else{
    hehe();
    }
    }

    function hehe(){
    alert("11");
    }

    </script>
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-22 18:05:4327楼 得分:0
    25楼正解,就用setTimeout(),就行