Javascript:写了个 定时执行的javascript,目的是尽量少的用setTimeout 和setInterval,希望批评指正
有没有效率更高更好的写法?Array.prototype.remove=function(o){for(vari=0;i<this.length;i++)if(this[...
有没有效率更高更好的写法?
Array.prototype.remove = function (o) {
for (var i = 0; i < this.length; i++)
if (this[i] === o)
this.splice(i, 1);
}
Array.prototype.exist = function (o) {
for (var i = 0; i < this.length; i++)
if(this[i] === o) return true;
return false;
}
Array.prototype.del = function (inx) {
this.splice(inx, 1);
}
var Timer={};
(
function(o){
var _hz=10;//频率
var _arr=[];
var _t=false;
var _exe=function(){
if(_arr.length>0)
for(var i=0;i<_arr.length;i++)
_arr[i]();
else
clearInterval(_t);
_t=false;
}
o.add=function(fun){
_arr.push(fun);
if(!_t) _t = setInterval(_exe,_hz);
}
o.del=function(fun){
_arr.remove(fun);
}
}
)(Timer);
var fun=function(){
document.write("xxxx\n");
}
Timer.add(fun);
setTimeout(function(){Timer.del(fun)},100); 展开
Array.prototype.remove = function (o) {
for (var i = 0; i < this.length; i++)
if (this[i] === o)
this.splice(i, 1);
}
Array.prototype.exist = function (o) {
for (var i = 0; i < this.length; i++)
if(this[i] === o) return true;
return false;
}
Array.prototype.del = function (inx) {
this.splice(inx, 1);
}
var Timer={};
(
function(o){
var _hz=10;//频率
var _arr=[];
var _t=false;
var _exe=function(){
if(_arr.length>0)
for(var i=0;i<_arr.length;i++)
_arr[i]();
else
clearInterval(_t);
_t=false;
}
o.add=function(fun){
_arr.push(fun);
if(!_t) _t = setInterval(_exe,_hz);
}
o.del=function(fun){
_arr.remove(fun);
}
}
)(Timer);
var fun=function(){
document.write("xxxx\n");
}
Timer.add(fun);
setTimeout(function(){Timer.del(fun)},100); 展开
1个回答
展开全部
不对?
这个应该是可以的,“+”号可以起到字符串连接。但是最好写在一块,如果属性是类似数组的话,建议使用for循环处理。
msgTime = window.setTimeout("msgScroll(" + ElemName + ", " + ElemNum + ")", 10);
不对的话要怎么改?
直接这样写试试看:
msgTime = window.setTimeout("msgScroll('xx','xx')", 10);
希望我下面的这个例子对你有所帮助:
<script language="javascript">
<!--
function dispTime()
{
myspan.innerHTML = (new Date()).toLocaleString();
setTimeout("dispTime()",1000);
}
-->
</script>
</head>
<body onload="dispTime()">
<span id="myspan"></span>
</body>
另外,站长团上有产品团购,便宜有保证
这个应该是可以的,“+”号可以起到字符串连接。但是最好写在一块,如果属性是类似数组的话,建议使用for循环处理。
msgTime = window.setTimeout("msgScroll(" + ElemName + ", " + ElemNum + ")", 10);
不对的话要怎么改?
直接这样写试试看:
msgTime = window.setTimeout("msgScroll('xx','xx')", 10);
希望我下面的这个例子对你有所帮助:
<script language="javascript">
<!--
function dispTime()
{
myspan.innerHTML = (new Date()).toLocaleString();
setTimeout("dispTime()",1000);
}
-->
</script>
</head>
<body onload="dispTime()">
<span id="myspan"></span>
</body>
另外,站长团上有产品团购,便宜有保证
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询