作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
LE2。关于如何解决此问题的任何其他想法?
我有这段代码,但不知道为什么不能正常工作:
$(function autorun() {
if ($("#contactForm").is(":visible")){
setInterval( "refreshAjax();", 150000000000 );
}
else {
setInterval( "refreshAjax();", 15000 );
}
setTimeout("autorun();", 2000)
});
...
<body onLoad="autorun()">
现在,即使“contactForm”可见,它也会每 2 秒刷新一次页面。
我的逻辑是:如果“contactForm”可见,延迟刷新或停止刷新,继续检查,但同时根据其他语句刷新页面。
乐。
$(function() {
refreshAjax = function(){$("#flex1").flexReload();
}
});
LE2。提供最终解决方案 here通过@Nick Craver
$(function () {
var ajaxTimeout;
function autorun() {
if ($("#contactForm").is(":visible")){
if(ajaxTimeout) {
clearInterval(ajaxTimeout);
ajaxTimeout = false;
}
}
else if(!ajaxTimeout) {
ajaxTimeout = setInterval(refreshAjax, 15000);
}
}
setInterval(autorun, 2000);
});
谢谢,克里斯蒂安。
最佳答案
目前您正在创建很多间隔计时器,这并不好。我不知道这是否能解决您的问题,因为除此之外,您的代码看起来还不错。
试一试:
var ajaxTimeout;
function autorun() {
if ($("#contactForm").is(":visible")){
if(ajaxTimeout) {
clearInterval(ajaxTimeout);
ajaxTimeout = false;
}
}
else if(!ajaxTimeout) {
ajaxTimeout = setInterval(refreshAjax, 15000);
}
}
$(function() {
setInterval(autorun, 2000)
});
请记住时间以毫秒为单位。
更新:@tec 有另一个有趣的解决方案。因此,这取决于您实际希望通过代码实现的目标。
关于javascript检查元素是否可见并相应地设置 "setInterval",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4057640/
我在 Java 中遇到异常处理问题,这是我的代码。当我尝试运行此行时出现编译器错误:throw new MojException("Bledne dane");。错误是: exception MojE
我刚刚开始学习asp.net。在你们的支持下,我希望我能从这个论坛学到更多东西。 我的问题是, 我在 asp.net 页面中有一个 TabContainer1,因为每个选项卡面板中有多个类似 (60)
我是一名优秀的程序员,十分优秀!