setTimeout()
এটি ব্যবহার করে নির্দিষ্ট সময়ে কোনও ফাংশন চালু করা সম্ভব:
setTimeout(function, 60000);
তবে যদি আমি একাধিকবার ফাংশনটি চালু করতে চাই? প্রতিটি সময় অন্তর পাস করার পরে, আমি ফাংশনটি সম্পাদন করতে চাই (প্রতি 60 সেকেন্ডে, আসুন বলি)।
setTimeout()
এটি ব্যবহার করে নির্দিষ্ট সময়ে কোনও ফাংশন চালু করা সম্ভব:
setTimeout(function, 60000);
তবে যদি আমি একাধিকবার ফাংশনটি চালু করতে চাই? প্রতিটি সময় অন্তর পাস করার পরে, আমি ফাংশনটি সম্পাদন করতে চাই (প্রতি 60 সেকেন্ডে, আসুন বলি)।
উত্তর:
যদি আপনার যদি যত্ন না হয় তবে এর মধ্যে কোডটি timer
আপনার বিরতি থেকে বেশি সময় নিতে পারে, ব্যবহার করুন setInterval()
:
setInterval(function, delay)
এটি ফাংশনটিকে বারবার প্রথম প্যারামিটার হিসাবে পাস করেছে।
setTimeout
একটি self-executing anonymous
ফাংশন সহ ব্যবহার করার জন্য আরও ভাল পন্থা :
(function(){
// do some stuff
setTimeout(arguments.callee, 60000);
})();
এটি গ্যারান্টি দেয়, আপনার কোড কার্যকর করার আগে পরবর্তী কল করা হয়নি। আমি arguments.callee
এই উদাহরণে ফাংশন রেফারেন্স হিসাবে ব্যবহার করেছি । ক্রিয়াকলাপটিকে একটি নাম দেওয়ার এবং এটির কল করার আরও ভাল উপায় setTimeout
কারণ arguments.callee
এটি বাস্তবে স্ক্রিপ্ট 5-এ অবনমিত রয়েছে।
clearInterval()
এটি একটি অংশীদার ফাংশন setInterval()
এবং যদি আপনি আপনার পর্যায়ক্রমিক ফাংশন কলটি বন্ধ করতে চান তবে তা কার্যকর হয়।
ব্যবহার
setInterval(function, 60000);
সম্পাদনা: (আপনি যদি ঘড়িটি শুরু করার পরে থামাতে চান তবে)
স্ক্রিপ্ট বিভাগ
<script>
var int=self.setInterval(function, 60000);
</script>
এবং এইচটিএমএল কোড
<!-- Stop Button -->
<a href="#" onclick="window.clearInterval(int);return false;">Stop</a>
একটি ভাল ব্যবহার jAndy এর উত্তর একটি পোলিং ফাংশন বাস্তবায়ন বিশেষ করে নির্বাচনের সময় যে interval
সেকেন্ড, এবং পরে প্রান্ত timeout
সেকেন্ড।
function pollFunc(fn, timeout, interval) {
var startTime = (new Date()).getTime();
interval = interval || 1000;
(function p() {
fn();
if (((new Date).getTime() - startTime ) <= timeout) {
setTimeout(p, interval);
}
})();
}
pollFunc(sendHeartBeat, 60000, 1000);
হালনাগাদ
মতামত অনুসারে, পোলিং বন্ধ করার জন্য পাস ফাংশনটির সক্ষমতা অর্জনের জন্য এটি আপডেট করা:
function pollFunc(fn, timeout, interval) {
var startTime = (new Date()).getTime();
interval = interval || 1000,
canPoll = true;
(function p() {
canPoll = ((new Date).getTime() - startTime ) <= timeout;
if (!fn() && canPoll) { // ensures the function exucutes
setTimeout(p, interval);
}
})();
}
pollFunc(sendHeartBeat, 60000, 1000);
function sendHeartBeat(params) {
...
...
if (receivedData) {
// no need to execute further
return true; // or false, change the IIFE inside condition accordingly.
}
}
sendHeartBeat
?
interval
এবং timeout
মিলিসেকেন্ডে আছে, তাই না?
JQuery এ আপনি এটি করতে পারেন।
function random_no(){
var ran=Math.random();
jQuery('#random_no_container').html(ran);
}
window.setInterval(function(){
/// call your function here
random_no();
}, 6000); // Change Interval here to test. For eg: 5000 for 5 sec
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="random_no_container">
Hello. Here you can see random numbers after every 6 sec
</div>
// Change Interval here to test. For eg: 5000 for 5 sec
বর্তমানে এটি প্রতি 6 সেকেন্ডে পরিবর্তিত হবে। এক মিনিটের জন্য 60000 মান ব্যবহার করুন
ফাংশনের শেষে আপনি কেবল সেটটাইমআউট কল করতে পারেন। এটি এটিকে ইভেন্টের সারিতে আবার যুক্ত করবে। বিলম্বের মানগুলি পরিবর্তনের জন্য আপনি যে কোনও ধরণের যুক্তি ব্যবহার করতে পারেন। উদাহরণ স্বরূপ,
function multiStep() {
// do some work here
blah_blah_whatever();
var newtime = 60000;
if (!requestStop) {
setTimeout(multiStep, newtime);
}
}
একটি জাভাস্ক্রিপ্ট ফাংশন প্রতি 2 সেকেন্ডে 10 সেকেন্ডের জন্য একটানা কল করুন।
var intervalPromise; $scope.startTimer = function(fn, delay, timeoutTime) { intervalPromise = $interval(function() { fn(); var currentTime = new Date().getTime() - $scope.startTime; if (currentTime > timeoutTime){ $interval.cancel(intervalPromise); } }, delay); }; $scope.startTimer(hello, 2000, 10000); hello(){ console.log("hello"); }
// example:
// checkEach(1000, () => {
// if(!canIDoWorkNow()) {
// return true // try again after 1 second
// }
//
// doWork()
// })
export function checkEach(milliseconds, fn) {
const timer = setInterval(
() => {
try {
const retry = fn()
if (retry !== true) {
clearInterval(timer)
}
} catch (e) {
clearInterval(timer)
throw e
}
},
milliseconds
)
}
function random(number) {
return Math.floor(Math.random() * (number+1));
}
setInterval(() => {
const rndCol = 'rgb(' + random(255) + ',' + random(255) + ',' + random(255) + ')';//rgb value (0-255,0-255,0-255)
document.body.style.backgroundColor = rndCol;
}, 1000);
<script src="test.js"></script>
it changes background color in every 1 second (written as 1000 in JS)
এখানে আমরা প্রাকৃতিক সংখ্যা 0 থেকে ...... এন কনসোল করি (পরবর্তী 60 নম্বর প্রতি কনসোলে মুদ্রণ)
var count = 0;
function abc(){
count ++;
console.log(count);
}
setInterval(abc,60*1000);
কল করার 2 টি উপায় রয়েছে-
setInterval(function (){ functionName();}, 60000);
setInterval(functionName, 60000);
উপরের ফাংশনটি প্রতি 60 সেকেন্ডে কল করবে।