উত্তর:
আপনি চান setInterval()
:
var intervalID = setInterval(function(){alert("Interval reached");}, 5000);
সেটইন্টারওয়াল () -এর প্রথম পরামিতিও মূল্যায়নের জন্য কোডের একটি স্ট্রিং হতে পারে।
আপনি এর মাধ্যমে একটি পর্যায়ক্রমিক ফাংশন সাফ করতে পারেন:
clearInterval(intervalID);
setInterval()
প্যারামিটার বিবেচনা না করেই প্রশ্নের সঠিক উত্তর। এটি কেবল একটি উদাহরণ এবং উভয় পদ্ধতিই সংজ্ঞা অনুসারে সঠিক।
দয়া করে মনে রাখবেন setInterval () প্রায়ই পর্যাবৃত্ত সঞ্চালনের জন্য সবচেয়ে ভালো সমাধান নয় - এটি সত্যিই কি জাভাস্ক্রিপ্ট আপনি আসলে পর্যায়ক্রমে আহ্বান করছি উপর নির্ভর করে।
যেমন। আপনি যদি 1000 মিমি অবধি এবং নির্দিষ্ট পর্যায়ক্রমে সেটইন্টারওয়াল () ব্যবহার করেন তবে আপনি এমন একটি এজ্যাক্স কল করেন যা মাঝে মাঝে ফিরে আসতে 2 সেকেন্ড সময় নেয় আপনি প্রথম প্রতিক্রিয়া ফিরে আসার আগেই আবার একটি অজ্যাক্স কল করবেন। এটি সাধারণত অনাকাঙ্ক্ষিত।
অনেক লাইব্রেরিতে পর্যায়ক্রমিক পদ্ধতি রয়েছে যা নির্বিঘ্নে সেটইন্টারভাল ব্যবহার করার ক্ষতির বিরুদ্ধে সুরক্ষা দেয় যেমন নেলসনের দেওয়া প্রোটোটাইপ উদাহরণ।
এতে একটি jQuery এজাক্স কল রয়েছে এমন একটি ফাংশন সহ আরও দৃ period় পর্যায়ক্রমিক সম্পাদন অর্জন করতে, এরকম কিছু বিবেচনা করুন:
function myPeriodicMethod() {
$.ajax({
url: ...,
success: function(data) {
...
},
complete: function() {
// schedule the next request *only* when the current one is complete:
setTimeout(myPeriodicMethod, 1000);
}
});
}
// schedule the first invocation:
setTimeout(myPeriodicMethod, 1000);
আরেকটি পদ্ধতি হ'ল সেটটাইমআউট ব্যবহার করুন তবে একটি ভেরিয়েবলের মধ্যে অতিবাহিত সময়কে ট্র্যাক করা এবং তারপরে প্রতিটি আবেদনের গতিশীলভাবে সময়সীমা বিলম্ব সেট করে যতটা সম্ভব কাঙ্ক্ষিত বিরতির কাছাকাছি কোনও ফাংশন সম্পাদন করতে পারবেন তবে আপনি প্রতিক্রিয়াগুলি ফিরে পেতে পারেন না তার চেয়ে বেশি দ্রুত।
প্রত্যেকেরই ইতিমধ্যে একটি সেটটাইমআউট / সেটআইন্টারওয়াল সমাধান রয়েছে। আমি মনে করি যে এটি উল্লেখ করা গুরুত্বপূর্ণ যে আপনি কেবল স্ট্রিংগুলিতেই নয়, সেটআপ ইন্টারভালটিতে ফাংশনগুলি পাস করতে পারেন। স্ট্রিংগুলির পরিবর্তে প্রকৃত ফাংশনগুলি পাস করার জন্য এটি সম্ভবত কিছুটা "নিরাপদ" যা সেই ফাংশনে "স্পষ্ট" হয়ে যাবে।
// example 1
function test() {
alert('called');
}
var interval = setInterval(test, 10000);
বা:
// example 2
var counter = 0;
var interval = setInterval(function() { alert("#"+counter++); }, 5000);
পুরানো প্রশ্ন তবে .. আমারও একটি পর্যায়ক্রমিক টাস্ক রানার দরকার ছিল এবং আমি টাস্কটাইমার লিখেছিলাম । এটি যখন আপনার বিভিন্ন বিরতিতে একাধিক টাস্ক চালানোর প্রয়োজন হয় তখন এটিও কার্যকর।
// Timer with 1000ms (1 second) base interval resolution.
var timer = new TaskTimer(1000)
// Add task(s) based on tick intervals.
timer.addTask({
name: 'job1', // unique name of the task
tickInterval: 5, // run every 5 ticks (5 x interval = 5000 ms)
totalRuns: 10, // run 10 times only. (set to 0 for unlimited times)
callback: function (task) {
// code to be executed on each run
console.log(task.name + ' task has run ' + task.currentRuns + ' times.');
}
});
// Start the timer
timer.start();
TaskTimer
ব্রাউজার এবং নোড উভয়ই কাজ করে। সমস্ত বৈশিষ্ট্য জন্য ডকুমেন্টেশন দেখুন ।
আপনি সেটইন্টারভাল () এবং সেটটাইমআউট () দেখতে চান।
এখানে একটি শালীন টিউটোরিয়াল নিবন্ধ ।
হ্যাঁ - কটাক্ষপাত করা setInterval
এবংsetTimeout
নির্দিষ্ট সময়ে কোড নির্বাহ জন্য। সেট ইনটারওয়াল হ'ল সময় সময় কোড এক্সিকিউট করার জন্য ব্যবহার করা।
ব্যবহারের জন্য এখানে একটি ডেমো দেখুন এবং উত্তর দিন
যেহেতু আপনি চান যে ফাংশন পর্যায়ক্রমে সম্পাদিত হয় , তাই সেটইন্টারভাল ব্যবহার করুন
নেটিভ উপায়টি প্রকৃতপক্ষে setInterval()
/ clearInterval()
, তবে আপনি যদি ইতিমধ্যে প্রোটোটাইপ লাইব্রেরি ব্যবহার করে থাকেন তবে আপনি পিরিওডিক্যাল এক্সেকিউটারের সুবিধা নিতে পারেন:
new PeriodicalUpdator(myEvent, seconds);
এটি ওভারল্যাপিং কলগুলি প্রতিরোধ করে। Http://www.prototypejs.org/api/periodicalExecuter থেকে :
"এটি আপনাকে কলব্যাক ফাংশনের একাধিক সমান্তরাল সম্পাদনের বিরুদ্ধে রক্ষা করে, প্রদত্ত ব্যবধানটি কার্যকর করতে বেশি সময় নেওয়া উচিত (এটি একটি অভ্যন্তরীণ" চলমান "পতাকা বজায় রাখে, যা কলব্যাক ফাংশনে ব্যতিক্রমগুলির বিরুদ্ধে রক্ষিত থাকে) এটি বিশেষত কার্যকর যদি আপনি ব্যবহার করেন তবে প্রদত্ত বিরতিতে ব্যবহারকারীর সাথে ইন্টারঅ্যাক্ট করার জন্য একটি ব্যবহার করুন (উদাহরণস্বরূপ প্রম্পট ব্যবহার করুন বা কলটি কনফার্ম করুন): এটি কার্যকর হওয়ার জন্য অপেক্ষা করা একাধিক বার্তা বাক্সগুলি এড়াবে। "