Answers:
setInterval()
ඔබට ලබා දිය හැකි කාල පරතරය හැඳුනුම්පතක් ලබා දෙයි clearInterval()
:
var refreshIntervalId = setInterval(fname, 10000);
/* later */
clearInterval(refreshIntervalId);
setInterval()
සහ සඳහා ලියකියවිලි බලන්න clearInterval()
.
clearInterval
. window.refreshIntervalId
දේශීය විචල්යයක් වෙනුවට මම භාවිතා කර ඇති අතර එය විශිෂ්ට ලෙස ක්රියා කරයි!
$('foo').data('interval', setInterval(fn, 100));
ඉන්පසු එය ඉවත් කිරීමෙන් clearInterval($('foo').data('interval'));
jQuery නොවන ක්රමයක් ද ඇති බව මට විශ්වාසයි.
ඔබ ප්රතිලාභ අගය setInterval
විචල්යයකට සකසන්නේ නම්, clearInterval
එය නැවැත්වීමට ඔබට භාවිතා කළ හැකිය .
var myTimer = setInterval(...);
clearInterval(myTimer);
ඔබට නව විචල්යයක් සැකසිය හැකි අතර එය ක්රියාත්මක වන සෑම අවස්ථාවකම ++ කින් වැඩි කරන්න (එකක් ගණනය කරන්න), එය අවසන් කිරීමට මම කොන්දේසි සහිත ප්රකාශයක් භාවිතා කරමි:
var intervalId = null;
var varCounter = 0;
var varName = function(){
if(varCounter <= 10) {
varCounter++;
/* your code goes here */
} else {
clearInterval(intervalId);
}
};
$(document).ready(function(){
intervalId = setInterval(varName, 10000);
});
එය උපකාරී වන අතර එය නිවැරදි යැයි මම බලාපොරොත්තු වෙමි.
clearInterval(varName);
. clearInterval
ශ්රිතයේ නම සම්මත වූ විට ක්රියා නොකරනු ඇතැයි මම අපේක්ෂා කළෙමි, එයට අන්තරාල හැඳුනුම්පත අවශ්ය යැයි මම සිතුවෙමි. මෙය ක්රියාත්මක විය හැක්කේ ඔබට නම් කරන ලද ශ්රිතයක් ඇත්නම් පමණි, ඔබට නිර්නාමික ශ්රිතයක් විචල්යයක් ලෙස සම්මත කළ නොහැක.
$(document).ready(function(){ });
jQuery, ඒ නිසා එය ක්රියා නොකරයි. මෙය අවම වශයෙන් සඳහන් කළ යුතුව තිබුණි.
varName
, එය නම් නොකළ ශ්රිතයක් ගබඩා කරයි - wha ?? IMHO, ඔබ මෙම පිළිතුර වෙනස් කළ යුතුය.
ඉහත පිළිතුරු වලින් දැනටමත් setInterval විසින් හසුරුව නැවත ලබා දෙන්නේ කෙසේද සහ අන්තරාල කාලරාමුව අවලංගු කිරීමට මෙම හසුරුව භාවිතා කරන්නේ කෙසේද යන්න පැහැදිලි කර ඇත.
සමහර වාස්තු විද්යාත්මක කරුණු:
කරුණාකර "විෂය පථය අඩු" විචල්යයන් භාවිතා නොකරන්න. ආරක්ෂිතම ක්රමය වන්නේ DOM වස්තුවක ගුණාංගය භාවිතා කිරීමයි. පහසුම ස්ථානය වනුයේ "ලේඛනය" ය. ආරම්භක / නැවතුම් බොත්තමකින් නැවුම්බව ආරම්භ කරන්නේ නම්, ඔබට බොත්තම භාවිතා කළ හැකිය:
<a onclick="start(this);">Start</a>
<script>
function start(d){
if (d.interval){
clearInterval(d.interval);
d.innerHTML='Start';
} else {
d.interval=setInterval(function(){
//refresh here
},10000);
d.innerHTML='Stop';
}
}
</script>
බොත්තම ක්ලික් කරන්න හසුරුව තුළ ශ්රිතය අර්ථ දක්වා ඇති බැවින්, ඔබ එය නැවත අර්ථ දැක්විය යුතු නැත. බොත්තම නැවත ක්ලික් කළහොත් ටයිමරය නැවත ආරම්භ කළ හැකිය.
document
මත වඩා window
?
දැනටමත් පිළිතුරු දී ඇත ... නමුත් ඔබට විවිධ කාල පරාසයන්හි විවිධ කාර්යයන් සඳහා සහාය වන විශේෂිත, නැවත භාවිතා කළ හැකි ටයිමරයක් අවශ්ය නම් , ඔබට මගේ TaskTimer (Node සහ browser සඳහා) භාවිතා කළ හැකිය .
// Timer with 1000ms (1 second) base interval resolution.
const timer = new TaskTimer(1000);
// Add task(s) based on tick intervals.
timer.add({
id: 'job1', // unique id of the task
tickInterval: 5, // run every 5 ticks (5 x interval = 5000 ms)
totalRuns: 10, // run 10 times only. (omit for unlimited times)
callback(task) {
// code to be executed on each run
console.log(task.name + ' task has run ' + task.currentRuns + ' times.');
// stop the timer anytime you like
if (someCondition()) timer.stop();
// or simply remove this task if you have others
if (someCondition()) timer.remove(task.id);
}
});
// Start the timer
timer.start();
ඔබගේ නඩුවේදී, පරිශීලකයින් දත්ත නැවුම්බව බාධා කිරීම සඳහා ක්ලික් කළ විට; ඔබ ද ඇමතිය හැකි timer.pause()
නම් timer.resume()
ඔවුන් නැවත සක්රීය කිරීමට අවශ්ය නම්.
වැඩි විස්තර මෙතැනින් බලන්න .
ncnu,
Ur ර් කොන්සෝලය බ්රව්සරය (එෆ් 12) බැලීමට පෙර ධාවනය කිරීමේ කේතය උත්සාහ කළ විට ඔබට විවේකය නැවැත්විය හැකිය ... අදහස් දැක්වීමට උත්සාහ කරන්න පැහැදිලි ඉන්ටර්වෙල් (ප්රේරකය) නැවත කොන්සෝලයක් ලෙස පෙනේ, අලංකාරකාරකයක් නොවේද? : පී
උදාහරණයක් මූලාශ්රයක් පරීක්ෂා කරන්න:
var trigger = setInterval(function() {
if (document.getElementById('sandroalvares') != null) {
document.write('<div id="sandroalvares" style="background: yellow; width:200px;">SandroAlvares</div>');
clearInterval(trigger);
console.log('Success');
} else {
console.log('Trigger!!');
}
}, 1000);
<div id="sandroalvares" style="background: gold; width:200px;">Author</div>
SetInterval () ක්රමය සමඟ ටයිමර් කට්ටලයක් ඉවත් කිරීමට clearInterval () ක්රමය භාවිතා කළ හැකිය.
setInterval සෑම විටම හැඳුනුම් අගයක් ලබා දෙයි. ටයිමරය නැවැත්වීම සඳහා මෙම අගය clearInterval () මගින් ලබා දිය හැකිය. ටයිමරය 30 සිට ආරම්භ වන අතර එය 0 බවට පත්වන විට නතර වේ.
let time = 30;
const timeValue = setInterval((interval) => {
time = this.time - 1;
if (time <= 0) {
clearInterval(timeValue);
}
}, 1000);
SetInterval (...) වෙතින් ආපසු ලබා දුන් අගය පැවරීම සඳහා විචල්යය ප්රකාශ කරන්න සහ පවරා ඇති විචල්යය clearInterval () වෙත යොමු කරන්න;
උදා
var timer, intervalInSec = 2;
timer = setInterval(func, intervalInSec*1000, 30 ); // third parameter is argument to called function 'func'
function func(param){
console.log(param);
}
// ඉහත ප්රකාශිත ටයිමරයට ඔබ පිවිසෙන ඕනෑම තැනක පැහැදිලි ඉන්ටර්වෙල් අමතන්න
$('.htmlelement').click( function(){ // any event you want
clearInterval(timer);// Stops or does the work
});
var keepGoing = true;
setInterval(function () {
if (keepGoing) {
//DO YOUR STUFF HERE
console.log(i);
}
//YOU CAN CHANGE 'keepGoing' HERE
}, 500);
"නැවතුම්-පරතරය" හැඳුනුම්පත සමඟ බොත්තමක් කීමට සිදුවීම් සවන්දෙන්නෙකු එක් කිරීමෙන් ඔබට පරතරය නැවැත්විය හැකිය:
$('buuton#stop-interval').click(function(){
keepGoing = false;
});
HTML:
<button id="stop-interval">Stop Interval</button>
සටහන: පරතරය තවමත් ක්රියාත්මක වනු ඇත, නමුත් කිසිවක් සිදු නොවේ.
තත්පර 10 කට පසුව ටයිමරය නැවැත්වීමට මම පැහැදිලි ඉන්ටර්වෙල් () ක්රමය භාවිතා කළේ එලෙසයි.
function startCountDown() {
var countdownNumberEl = document.getElementById('countdown-number');
var countdown = 10;
const interval = setInterval(() => {
countdown = --countdown <= 0 ? 10 : countdown;
countdownNumberEl.textContent = countdown;
if (countdown == 1) {
clearInterval(interval);
}
}, 1000)
}
<head>
<body>
<button id="countdown-number" onclick="startCountDown();">Show Time </button>
</body>
</head>
ටික වේලාවකට පසු පරතරය නැවැත්වීමට setTimeOut භාවිතා කරන්න.
var interVal = setInterval(function(){console.log("Running") }, 1000);
setTimeout(function (argument) {
clearInterval(interVal);
},10000);
පහත කේතය උපකාරී වනු ඇතැයි මම සිතමි:
var refreshIntervalId = setInterval(fname, 10000);
clearInterval(refreshIntervalId);
ඔබ කේතය 100% නිවැරදි කළා ... ඉතින් ... ගැටලුව කුමක්ද? නැත්නම් එය නිබන්ධනයක් ...
කිසිවක් නොකරන්නැයි අන්තරයට පවසන පන්තියක් එක් කරන්න. උදාහරණයක් ලෙස: හෝවර් මත.
var i = 0;
this.setInterval(function() {
if(!$('#counter').hasClass('pauseInterval')) { //only run if it hasn't got this class 'pauseInterval'
console.log('Counting...');
$('#counter').html(i++); //just for explaining and showing
} else {
console.log('Stopped counting');
}
}, 500);
/* In this example, I'm adding a class on mouseover and remove it again on mouseleave. You can of course do pretty much whatever you like */
$('#counter').hover(function() { //mouse enter
$(this).addClass('pauseInterval');
},function() { //mouse leave
$(this).removeClass('pauseInterval');
}
);
/* Other example */
$('#pauseInterval').click(function() {
$('#counter').toggleClass('pauseInterval');
});
body {
background-color: #eee;
font-family: Calibri, Arial, sans-serif;
}
#counter {
width: 50%;
background: #ddd;
border: 2px solid #009afd;
border-radius: 5px;
padding: 5px;
text-align: center;
transition: .3s;
margin: 0 auto;
}
#counter.pauseInterval {
border-color: red;
}
<!-- you'll need jQuery for this. If you really want a vanilla version, ask -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p id="counter"> </p>
<button id="pauseInterval">Pause</button></p>
මම අවුරුදු ගණනාවක් තිස්සේ මෙම වේගවත් හා පහසු ප්රවේශය සොයමින් සිටිමි, එබැවින් හැකි තරම් පිරිසක් එයට හඳුන්වා දීම සඳහා මම අනුවාද කිහිපයක් පළ කරමි.
this.setInterval(function() { if(!$('#counter').hasClass('pauseInterval')) { //do something } }, 500);
කේත සඳහා ඔබ සතුව ඇත්තේ එපමණයි. එපමණක් නොව, චෙක්පත යනු ඔබ කරන පළමු දෙයයි, එබැවින් එය සඟවා තබන විට එය ඉතා සැහැල්ලු ය. මෙය මෙයයි: තාවකාලිකව ශ්රිතයක් විරාමය . ඔබට එය දින නියමයක් නොමැතිව අවසන් කිරීමට අවශ්ය නම්: ඇත්ත වශයෙන්ම ඔබ පරතරය ඉවත් කරයි.