ساخت یک 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);
}