ساخت یک Timer با استفاده از setInterval برای صفحات وب
بسم الله الرحمن الرحیم
در بسیاری از مواقع شما نیاز دارید در صفحات وب خود از یک تایمر برای اجرا و تکرار دستورات استفاده کنید، در ASP.NET می توانستید از یک Timer در پنل های Ajax استفاده کنید اما در ASP.NET MVC باید این مشکل را به صورت زیر حل کنید:
متد setInterval
این متد بر اساس پارمتر خود که یک عدد integer و با واحد زمانی میلی ثانیه است، دستورات مشخص شده ای را اجرا می کند.
var retval = window.setInterval(expression, msec, language);
پارامتر expression
نوع پارامتر: Variant
توضیح : یک Pointer یا یک String است به متد یا دستوراتی که باید در هر بار اجرا شدن تایمر، فراخوانی و اجرا شوند.
پارامتر msec
نوع پارامتر: Integer
توضیح : بازه های زمانی تکرار این تایمر را مشخص می کند که بر اساس میلی ثانیه می باشد.
پارامتر language (اختیاری)
نوع پارامتر: Variant
پارامتری اختیاری است که یکی از مقادیر خاصیت Language را می تواند دریافت کند.
Return value
Type: Integer
توضیح : یک عدد Integer که مشخص می کند تایمر توسط متد clearInterval متوقف شده است.
این تایمر تا زمانی که توسط متد clearInterval متوقف نشود به کار خود ادامه می دهد.
مثال:
ما یک function با نام someFunction برای بازه های زمانی 5 ثانیه یک بار می خواهیم اجرا کنیم. هنگامی که نام function را به عنوان پارامتر ثبت می کنید، باید پرانتز را نیز ثبت کنید
window.setInterval("someFunction()", 5000);
اگر در پارامتر Pointer انتقال می دهید نیازی به ثبت پرانتز نیست
window.setInterval(someFunction, 5000);
مثال:
var oInterval = "";
function fnStartClock(){
oInterval = setInterval(fnDoClock,200);
}
function fnDoClock(){
// Code to display hours, minutes, and seconds.
}
window.onload = fnStartClock;
مثال:
// The first example of a closure passes the variable to a named function.
function startTimer() {
var div = document.getElementById('currentTime');
setTimeout(function(){doClock(div)},200);
}
// The second example also uses a closure, by referring to an argument passed to the function.
function doClock(obj) {
setInterval(function(){obj.innerHTML=(new Date()).toLocaleString()},200);
}
مثال:
function startCounter() {
var div = document.getElementById('counter');
var count = 0;
setInterval(function(){count++},143);
setInterval(function(){div.innerHTML=count},667);
}