在本文中,我们将详细介绍如何使用无法在JavaScript中修改的计时器?的各个方面,并为您提供关于javascript不可用怎么办的相关解答,同时,我们也将为您带来关于javascript–刷新浏览
在本文中,我们将详细介绍如何使用无法在JavaScript中修改的计时器?的各个方面,并为您提供关于javascript不可用怎么办的相关解答,同时,我们也将为您带来关于javascript – 刷新浏览器时如何使倒数计时器不重置?、javascript – 在刷新时不会重置的计时器、javascript – 如何在输入字段keyup事件上添加等待计时器?、javascript-在JS中清除计时器问题的有用知识。
本文目录一览:- 如何使用无法在JavaScript中修改的计时器?(javascript不可用怎么办)
- javascript – 刷新浏览器时如何使倒数计时器不重置?
- javascript – 在刷新时不会重置的计时器
- javascript – 如何在输入字段keyup事件上添加等待计时器?
- javascript-在JS中清除计时器问题
如何使用无法在JavaScript中修改的计时器?(javascript不可用怎么办)
基本上,我正在设计有限的测验应用程序. Use选择一个问题的答案,并使用Ajax请求加载下一个问题.所有问题都必须在2分钟内回答.
时钟在滴答作响,显示还剩多少时间,一到0便显示结果.现在,由于将使用window.setTimeout()实现计时器,因此有可能使用外部书签或类似的方法来修改计时器变量的值.无论如何我可以防止这种情况?我认为这是在文件共享网站(例如megaupload)上实现的.计时器变量的任何伪造都会导致文件请求被拒绝.
解决方法:
让.setTimeout()调用服务器上的AJAX方法来同步时间.不要依赖客户的时间.您也可以在服务器上存储测验的开始时间,然后在测验发布时检查结束时间.
javascript – 刷新浏览器时如何使倒数计时器不重置?
当我刷新浏览器时,计时器重置,那么如何让它不重置?
这是我的代码.请检查一下.
<?PHP echo $waktune; ?> // You can change it into seconds
var detik = <?PHP echo $waktune; ?>;
if (document.images) {
parselimit = detik
}
function begintimer() {
if (!document.images)
return
if (parselimit < 12) {
document.getElementById("servertime").style.color = "Green";
}
if (parselimit == 1) {
document.getElementById("hasil").submit();
} else {
parselimit -= 1 curmin = Math.floor(parselimit / 60)
cursec = parselimit % 60
if (curmin != 0)
curtime = curmin + ":" + cursec + ""else
curtime = cursec + " detik"document.getElementById("servertime").innerHTML = curtime setTimeout("begintimer()", 1000)
}
}
解决方法:
尝试使用本地存储:
// Store
localStorage.setItem("key", "value");
// Retrieve
document.getElementById("result").innerHTML=localStorage.getItem("key");
更新
示例:
<head>
</head>
<body>
<div id="divCounter"></div>
<script type="text/javascript">
if(localStorage.getItem("counter")){
if(localStorage.getItem("counter") >= 10){
var value = 0;
}else{
var value = localStorage.getItem("counter");
}
}else{
var value = 0;
}
document.getElementById('divCounter').innerHTML = value;
var counter = function (){
if(value >= 10){
localStorage.setItem("counter", 0);
value = 0;
}else{
value = parseInt(value)+1;
localStorage.setItem("counter", value);
}
document.getElementById('divCounter').innerHTML = value;
};
var interval = setInterval(function (){counter();}, 1000);
</script>
</body>
javascript – 在刷新时不会重置的计时器
编辑:当我调用Clock.start()时,如何传递参数,以便我可以更改totalSeconds的值?
我有一个计数器,其值与计时器显示的ID连接,因为页面上会有多行计时器,但只有一行会为每个用户运行.我想传递定时器的值,所以我知道我应该获取的定时器在哪一行,然后我将其转换为秒,然后我最终可以将该值分配给totalSeconds.那么也许我可以按照我想象的方式来实现这一点.
我已经跑过的东西:我有一个计时器,除非我刷新,否则它不会显示它正在计数.当页面加载PHP查询MysqL并使用TIMEDIFF(Now(),time_log)计算已用时间,其中time_log是计时器启动时的时间.
我想要添加的内容:我想要做的是使用下面的js / jquery片段获取我的TIMEDIFF然后将其用作totalSeconds,因此totalSeconds不会重置并继续从TIMEDIFF值开始向上计数.
var Clock =
{
totalSeconds: 0,
start: function () {
var self = this;
this.interval = setInterval(function () {
self.totalSeconds += 1;
var ctr;
$(".icon-play").each(function(){
if( $(this).parent().hasClass('hide') )
ctr = ($(this).attr('id')).split('_');
});
$("#hour_" + ctr[1]).text(pad(Math.floor(self.totalSeconds/3600)));
$("#min_" + ctr[1]).text(pad( Math.floor((self.totalSeconds/60)%60) ));
$("#sec_" + ctr[1]).text(pad(parseInt(self.totalSeconds%60)));
}, 1000);
},
pause: function () {
clearInterval(this.interval);
delete this.interval;
},
resume: function () {
if (this.interval) this.start();
}
};
对于这个剧本,信用给Speransky Danil先生. how do I pause and resume a timer?
解决方法:
您应该记录开始时间并计算从现在到启动计时器之间的秒数,而不是记录总秒数.
此外,您已经将开始时间存储在数据库中,因此您可以在页面加载时从中初始化.
如果您只计算秒数,则会缩短页面刷新之间的时间.
编辑:您可以在PHP生成的HTML输出中初始化Clock.totalSeconds.我知道你已经有这个时钟JS工作(上面没有发布标记).
<script type="text/javascript">
var Clock = {}; // your code above
Clock.totalSeconds = <?PHP echo (int)$seconds; ?>;
</script>
javascript – 如何在输入字段keyup事件上添加等待计时器?
$(document).ready(function() { $('#SearchInputBox').keyup(function() { DoSearch($(this).val()); }); });
如何添加延迟时间,以便仅当用户停止键入1秒钟时,它才会运行DoSearch功能.我不希望每次用户键入键时都继续运行它,因为如果键入速度很快,那么它就会滞后.
解决方法
var timeout = null; $('#SearchInputBox').on('keyup',function () { var that = this; if (timeout !== null) { clearTimeout(timeout); } timeout = setTimeout(function () { DoSearch($(that).val()); },1000); });
javascript-在JS中清除计时器问题
我有一些使用PHP动态创建的元素.我希望用户将鼠标悬停在图标和要显示的相应元素上.当鼠标离开该图标时,我希望计时器启动,然后隐藏该元素.如果鼠标进入显示的元素,我想清除计时器.当鼠标离开该元素时,我希望计时器重新启动.
我很难弄清楚这一点,也无法弄清楚为什么计时器无法清除.下面的所有jQuery都在document.ready中.
jQuery的
var $infoIcon = $('.fa-info-circle');
var $trackListing = $('track-listing');
var timer;
// Show listing on hover
$infoIcon.on('mouseenter', function(){
$(this).next('.track-listing').fadeIn();
clearTimeout(timer);
// Start timer when exiting the info icon
}).on('mouseleave', function(){
timer = setTimeout(function(){
$('.track-listing').fadeOut();
}, 2000);
});
// Kill timer when entering listing Box
$trackListing.on('mouseenter', function(){
clearTimeout(timer);
// Start timer when leaving listing Box
}).on('mouseleave', function(){
timer = setTimeout(function(){
$('.track-listing').fadeOut();
}, 2000);
});
如果您需要PHP,请告诉我.另外,我尝试过放置var定时器;在document.ready之外作为全局变量,我得到相同的结果.
解决方法:
如果要在页面加载后插入元素,请尝试像这样绑定它们:
$(document).on(event, '.selector', function(){});
这委托了事件.
今天关于如何使用无法在JavaScript中修改的计时器?和javascript不可用怎么办的讲解已经结束,谢谢您的阅读,如果想了解更多关于javascript – 刷新浏览器时如何使倒数计时器不重置?、javascript – 在刷新时不会重置的计时器、javascript – 如何在输入字段keyup事件上添加等待计时器?、javascript-在JS中清除计时器问题的相关知识,请在本站搜索。
本文标签: