به وسیله تابع های خاصی در جاوا اسکریپت، می توانید کاری کنید که کدهای شما در دوره های زمانی معین تکرار و اجرا شوند و یا یک کد و تابع پس از گذشت زمان معینی از لود شدن صفحه اجرا شود.
به این توابع در جاوا اسکریپت ، تابع های زمانی می گویند.
استفاده از تابع های زمانی در جاوا اسکریپت بسیار ساده است . دو تابع اصلی برای کار با رویدادهای زمانی در جاوا اسکریپت عبارتند از:
( ) setInterval : این تابع پس از گذشت یک مدت زمان معین ، به صورت دوره ای و متناوب ، یک تابع تعیین شده برای آن را اجرا می نماید.
( ) setTimeout : این تابع پس از گذشت مدت زمان تعیین شده برای آن پس از لود شدن صفحه ، فقط یکبار کد تابع مربوط به خود را اجرا می کند.
( ) setInterval و ( ) setTimeout ، متدهای شی HTML DOM Window هستند.
متد ( ) setInterval:
تابع ( ) setInterval ، به صورت متناوب و دوره ای ، پس از گذشت مدت زمان تعیین شده برای آن ، یک تابع یا کد را اجرا می کند و تا زمانی که به وسیله برنامه متوقف نشود ، به این کار ادامه خواهد داد
شکل کلی استفاده از این متد به صورت زیر است:
Syntax setInterval ( ” javascript function name ” , milliseconds ) ;
مثال: setInterval ( ” MyFunction ” , 1000 ) ;
مثال: در مثال زیر با به کار بردن متد ( ) setInterval ، یک ساعت ساده دیجیتال ساخته شده است . به کد مثال دقت نمایید:
<p> بر روی دکمه فرمان زیر کلیک نمایید تا ساعت شروع به کار کند</p> <button onclick="myFunction( )"> نمایش ساعت </button> <script type="text/javascript"> function myFunction( ) { setInterval("myTimer( )", 1000); } </script> <script type="text/javascript"> function myTimer( ) { var d = new Date( ); var t = d.toLocaleTimeString( ); document.getElementById("demo").innerHTML = t; } </script> <p id="demo"> </p>
چگونه اجرای یک تابع را متوقف سازیم ؟ – تابع ( ) clearInterval:
در هنگام کار با تابع ( ) setInterval ، متوجه شدید که این تابع به صورت متناوب و دوره ای ، یک کد یا تابع را پس از گذشت مدت زمان تعیین شده برای آن ، اجرا می کند . اگر کاربر یا برنامه این تابع را متوقف نسازد ، تا زمانی صفحه یا برنامه تحت وب در حال اجراست ، این تابع نیز اجرا شده و به کار خود ادامه خواهد داد.
اما زمانی می رسد که شاید شما بخواهید پروسه این تابع را متوقف سازید.
برای اینکه بتوانید سیر عملیات یک تابع ( ) setInterval را متوقف سازید ، باید یک متغیر سراسری ( Global ) را در صفحه تعریف کرده و تابع ( ) setIntetval خود را در آن بریزید . به عبارت دیگر ، به شکل زیر تابع ( ) setInterval را در یک متغیر خاص تعریف می کنید.
Syntax یک متغیر = setInterval ( ” javascript function name ” , milliseconds ) ;
مثال: MyStop = setInterval ( ” MyFunction ” , 1000 ) ;
پس از اینکه تابع ( ) setInterval موردنظر خود را در یک متغیر تعریف کرده اید ، هر زمان که بخواهید آن تابع را متوقف سازید ، باید متغیر مرتبط به آن را به عنوان یک پارامتر ، همانند syntax جدول زیر ، به تابع ( ) clearInterval ، ارسال نمایید . در این صورت تابع از تکرار و تناوب باز خواهد ماند.
Syntax clearInterval ( نام متغیر تابع مورد نظر ) ;
مثال: clearInterval ( MyStop ) ;
با ارائه یک مثال ، سعی کرده ایم تا نحوه متوقف سازی یک تابع ( ) setInterval را با استفاده از تابع ( ) clearInterval ، نمایش دهیم.
برای این منظور کد مثال قبل را تکرار کرده ایم ، ولی اینبار کد توقف را نیز به آن اضافه کررده ایم. برای توقف ساعت در حال کار بر روی دکمه فرمان Stop کلیک نمایید . به کد مثال دقت نمایید:
<p> بر روی دکمه فرمان زیر کلیک نمایید تا ساعت شروع به کار کند سپس در صورتی که خواستید ساعت متوقف شود ، بر روی دکمه فرمان توقف ساعت کلیک نمایید</p> <button onclick="myFunction( )"> نمایش ساعت </button> <button onclick="stopTimer( )"> توقف ساعت </button> <script type="text/javascript"> var MyStop ; function myFunction( ) { MyStop = setInterval("myTimer( )", 1000); } </script> <script type="text/javascript"> function myTimer( ) { var d = new Date( ); var t = d.toLocaleTimeString( ); document.getElementById("demo").innerHTML = t; } </script> <script type="text/javascript"> function stopTimer ( ) { clearIntreval ( MyStop ) ; } </script> <p id="demo"> </p> امیداوریم از مقاله رویدادهای زمانی در php بهره کافی را برده باشید