timer数据库总显示连接不上服务器,ClearInterval无法工作(但有时仅适用于)服务器api调用...

我有这个函数应该每隔4秒查询一次可能已经发布的新内容的数据库。然后我接受返回并使用从服务器返回的任何内容制作的动态html刷新一个feed。这一切都很有效。

我的问题是,作为HTML的一部分,有一个选项托盘,他们可以按下它将滑过部分内容,并给他们不同的选项来处理该内容,删除,复制,评论这样的东西。好吧,当他们弹出托盘我想清除间隔计时器,这样它就不会刷新饲料中的html(使托盘消失)。

另一个问题是用户可以同时打开多个托盘,所以我想出了这个功能来处理它:

function setTimers(status)

{

var timerGetContent = null;

if(status == "login")

{

tray_count = 0;

timerGetContent = null;

timerGetContent = setInterval(getContent,4000);

alert("inside login");

}

else if(status == "negitive")

{

tray_count--;

if(tray_count == 0 && timerGetContent == null)

{

timerGetContent = setInterval(getRecentContent,4000);

alert("inside negitive");

}

}

else if(status == "positive")

{

tray_count++;

clearInterval(timerGetContent);

timerGetContent = null;

alert("inside positive")

}

}

因此,当用户按下按钮以弹出托盘时,它会调用setTimer并在其执行任何其他操作之前将其传递给肯定,然后当他们按下按钮关闭托盘时,它会调用setTimer并将其传递给否定。我知道调用工作并且它被传递了正确的参数,我甚至知道它进入函数的正确部分取决于按下什么但有时候间隔没有被清除并且无论什么时候它都会继续发射我做。已经工作了几个小时,我完全被难过了。

编辑:

我试图将函数外的var timerGetContent作为全局变量。这有同样的行为问题。

EDIT2:

调用setTimers函数的函数:

function slide_out(event)

{

clicked_element = document.getElementById(event.srcElement.id);

var re_clicked = new RegExp(clicked_element.className, "g");

if(clicked_element.className == "options-bar slide-out")

{

BACKGROUND.setTimers("positive");

clicked_element.className = clicked_element.className.replace(re_clicked, '');

clicked_element.className += "options-bar slide-out open";

}

else

{

clicked_element.className = clicked_element.className.replace(re_clicked, '');

clicked_element.className += "options-bar slide-out";

BACKGROUND.setTimers("negitive");

}

另一件事,setTimers函数位于扩展的后台文件中,而此函数位于弹出窗口中。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值