惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

N
Netflix TechBlog - Medium
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
爱范儿
爱范儿
博客园_首页
雷峰网
雷峰网
Hugging Face - Blog
Hugging Face - Blog
V
Visual Studio Blog
The Cloudflare Blog
罗磊的独立博客
美团技术团队
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
大猫的无限游戏
大猫的无限游戏
阮一峰的网络日志
阮一峰的网络日志
V
V2EX
博客园 - 叶小钗
The GitHub Blog
The GitHub Blog
Last Week in AI
Last Week in AI
J
Java Code Geeks
MyScale Blog
MyScale Blog
G
Google Developers Blog
U
Unit 42
Y
Y Combinator Blog
P
Proofpoint News Feed
Vercel News
Vercel News

博客园 - Kent

55种网页常用小技巧 - Kent - 博客园 (转文)IP Domain etc. CodeFile、Src、Codebehind三者的差别解释 - Kent - 博客园 Microsoft SQL Server 2005的国际功能(转贴) SQL Server 中易混淆的数据类型 关于 SQL Server 使用 Unicode 数据 Sys.WebForms.PageRequestManagerParserErrorException 错误的解决办法 SQLserver2005中的四个评价函数 常用DOS命令(转贴) 类的一般标准写法 正则表达式(regular expression) C#: 为datatable添加column的方法 C#: 三种符号的区别 C#:List 取代数组的方法 javascript:parseFloat javascript:trim function javascript: split & array javascript:eval function Javascript: Replace function.
javascript setTimeout 和 setInterval
Kent · 2007-09-21 · via 博客园 - Kent

下面这一段代码是我下面的一个SP写的javascript.
这一段代码会耗尽客户端的资源!直接死机!

setTimeout] setTimeout(表达式,延时时间)

在执行时,是在载入后延迟指定时间后,去执行一次表达式,记住,次数是一次

用setTimeout实现的自动变化显示随机数的效果:

<html> <head> <script> window.onload=sett; function sett() { document.body.innerHTML=Math.random(); setTimeout("sett()",500); } </script> </head> <body> </body> </html>

[setInterval] setInterval(表达式,交互时间)

则不一样,它从载入后,每隔指定的时间就执行一次表达式

用setInterval实现的自动变化显示随机数的效果: <html> <head> <script> function sett() { document.body.innerHTML=Math.random(); } setInterval("sett();", 500); </script> </script> </head> <body> </body> </html>

解决方法:我初定的方案是用setInterval来实现相应的操作。
其实,这一个函数的最终目的是要生成一个浮动的按钮。
而且20毫秒实在太短!
Hope to solve it tomorrow!

/***************************************************
* float move
***************************************************/
function F_FloatBar_move(objId,align,valign,xControl,yControl,hasParent)
{
     var objDiv=document.getElementById(objId);
     if(objDiv==null)
     {
       return;
     }
     var FloatBar_Top = F_AdjustFloatTopPx(valign,F_GetClientHeight(hasParent),hasParent);
     var FloatBar_Left=F_AdjustFloatLeftPx(align,F_GetClientWidth(hasParent),hasParent);
     var FloatBar_Delta = 0.05;
  
     var scrollTop=document.documentElement.scrollTop;
     var scrollLeft=document.documentElement.scrollLeft;
     if(hasParent=="true")
     {
        scrollTop=window.parent.document.documentElement.scrollTop;
        scrollLeft=window.parent.document.documentElement.scrollLeft;
     }
     if(yControl!="")
     {
        objDiv.style.top=F_GetOffsetTop(objId,valign,yControl)+"px";
     }
     else
     {
         if(objDiv.offsetTop != (scrollTop + FloatBar_Top))
           {
               var dy = (scrollTop + FloatBar_Top - objDiv.offsetTop) * FloatBar_Delta;
               dy = (dy > 0 ? 1 :  - 1) * Math.ceil(Math.abs(dy));
               objDiv.style.top = F_GetTopPx(objId,(objDiv.offsetTop + dy),F_GetClientHeight("false"))+"px";
           }
       }
      if(xControl!="")
       {
        objDiv.style.left=F_GetOffsetLeft(objId,align,xControl)+"px";
       }
       else
       {
          if(objDiv.offsetLeft != (scrollLeft + FloatBar_Left))
           {
               var dx = (scrollLeft + FloatBar_Left - objDiv.offsetLeft) * FloatBar_Delta;
             
               dx = (dx > 0 ? 1 :  - 1) * Math.ceil(Math.abs(dx));
               if((objDiv.offsetLeft + dx)>=0)
               {
               objDiv.style.left = F_GetLeftPx(objId,(objDiv.offsetLeft + dx),F_GetClientWidth("false"))+"px";
               }
           }
        }
     setTimeout("F_FloatBar_move('"+objId+"','"+align+"','"+valign+"','"+xControl+"','"+yControl+"','"+hasParent+"')",20);
}