javascript 模拟监听功能

本文探讨了在局部刷新页面场景下,如何有效利用监听机制避免服务器资源过度消耗,通过对比setInterval与setTimeout的不同应用,提供了针对特定需求的优化策略。

setInterval(initLogo,6000);
function initLogo(){
 //对需要监听的对象监听
 setInterval(initLogo,6000);
}
如果是局部刷新页面(监听),则不能使用这种方法,因为页面没有刷新,请求是每隔一段时间就会发送请求,这样请求数量就会以指数增长,这样会导致server崩溃

function listening(){
 //对需要监听的对象监听
 setTimeout(listening;6000);
}
则不会出现上面描述的问题

function whichElement(e)
{
var targ;
var path = "<" + currenPath + ">";
if (SDCARD_STATU_ENABLED != sdCardStatu)
{
alert(dj('sd_label_no_sd_card'));
return;
}
if (!e)
{
var e=window.event;
}

if (e.target)
{
targ=e.target;
}
else if (e.srcElement)
{
targ=e.srcElement;
}
if (targ.nodeType==3) // defeat Safari bug
{
targ = targ.parentNode;
}

if (window.win && (window.win.closed == false))
{
window.win.close();
}
path = path.replace(/\%/g, "%25");
path = path.replace(/\ /g, "%20");
path = path.replace(/\</g, "%3C");
path = path.replace(/\
>/g, "%3E");
path = path.replace(/\//g, "%2F");
path = path.replace(/\&/g, "%26");
path = path.replace(/\=/g, "%3D");
path = path.replace(/\#/g, "%23");
var url = 'sd_upload.htm?path='+path;
win = window.open(url, 'tree', 'scrollbars=yes,resizable=no,width=720,height=480');
watchChildWin();
$("#button_upload").attr("disabled", true);
$("#button_upload").css("color", "#ACA899");
}

function watchChildWin()
{
try
{
if ( null == win.document || (win.closed == true)) //firefox Google Opera
{
setControlDisable("button_upload", false);
$("#button_upload").attr("style", "color:#000000");
}
else
{
setTimeout("watchChildWin()", 100);
}
}
catch(e) //ie
{
setControlDisable("button_upload", false);
$("#button_upload").attr("style", "color:#000000");
}
}

 

转载于:https://www.cnblogs.com/hbiao68/archive/2011/10/15/2213746.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值