آموزشگاه برنامه نویسی تحلیل داده
آموزشگاه برنامه نویسی تحلیل داده

زمان بندی رخدادها در جاوا اسکریپت

دوره های مرتبط با این مقاله

زمان بندی و برنامه ریزی رخدادها در زبان جاوا اسکریپت

کدهای جاوا اسکریپت را می توان در فواصل زمانی معین اجرا کرد.
به این قابلیت (اجرای تابع در بازه های زمانی مشخص) زمان بندی رویدادها گفته می شود. در جاوا اسکریپت این امکان وجود دارد که یک تابع (قطعه کد) را در فواص زمانی مشخص اجرا کرد. به عبارتی دیگر به وسیله توابع خاصی در جاوا اسکریپت، می توانید کاری کنید که کدهای شما در دوره های زمانی معین (تکرار) اجرا شوند و یا یک کد و تابع با گذشت زمان مشخصی از زمان بارگذاری اجرا گردد.
به چنین توابعی در زبان جاوا اسکریپت، تابع های زمانی می گویند.
زمان بندی رخدادها در جاوا اسکریپت بسیار ساده است. دو متد اصلی که برای زمان بندی رخدادها بکار می روند، عبارتد از:

  1. ()setInterval – یک تابع را در فواصل زمانی مشخص بارها و بارها اجرا (تکرار) می کند.
  2. ()setTimeout – یک تابع را پس از گذشت زمان معینی (تعداد هزارم ثانیه ی مشخصی) یکبار اجرا می کند.
    هر دو تابع ذکر شده متدهای شی window مدل شی گرای سند اچ تی ام ال می باشند.

تابع ()setInterval

متد () setInterval به صورت متناوب و در فواصل زمانی معین، پس از گذشت مدت زمان مشخص شده (هزارم ثانیه) برای آن، یک تابع یا کد را اجرا می کند و مادام اینکه به وسیله برنامه متوقف نشده، این رویه را ادامه خواهد داد.
دستور نگارش این تابع به نحو زیر می باشد:

                        window.setInterval("javascript function", milliseconds);

این تابع را می توان بدون پیشوند window نیز بکاربرد.
اولین پارامتر ()setInterval، نام تابعی است که این متد آن را به طور متناوب اجرا خواهد کرد.
دومین پارامتر ورودی، مدت یا طول زمان بین هر بار اجرا را بر حسب میلی ثانیه تعیین می کند.

مثال:

این مثال هر سه ثانیه یکبار رشته ی "hello" را نمایش می دهد:

نمونه یک

    
امتحان کنید

زیر مثالی را مشاهده می کنید که تابع را پس از گذشت هر ثانیه، یکبار اجرا می کند، درست مانند یک ساعت دیجیتال:

نمونه دو

امتحان کنید

برای توقف اجرای تابع باید چه کار کرد؟
به وسیله ی متد ()clearInterval می توان اجرای تابع مشخص شده در ()setInterval را متوقف کرد.
نحوه ی تعریف آن:

                        window.clearInterval(intervalVariable)

متد ()window.clearInterval را می توان بدون پیشوند window نیز نوشت.
به منظور استفاده از متد ()clearInterval، باید زمان ایجاد متد ()setInterval، از یک متغیر سراسری استفاده نمود:

                        myVar=setInterval("javascript function", milliseconds);

سپس می توانید با فراخوانی متد ()clearInterval، اجرا تابع مورد نظر را متوقف کنید:
مثال زیر همان مثال قبلی است، با این تفاوت که یک دکمه ی "Stop time" به آن ضمیمه شده:

نمونه سه

    
امتحان کنید

تابع ()setTimeout

متد ()setTimeout پس از گذشت مدت زمان مشخص شده برای آن پس از اتمام بارگذاری صفحه، تنها یکبار کد تابع مربوط به خود را اجرا می کند.
ساختار نگارشی این متد به شرح زیر می باشد:

                        window.setTimeout("javascript function", milliseconds);

متد یاد شده را بدون ذکر واژه ی پیشوند window نیز می توان نوشت.
اولین پارامتر ورودی آن بایستی یک تابع باشد.
پارامتر دوم مشخص می کند پس از گذشت چند میلی ثانیه (از زمان جاری)، پارامتر اولی باید اجرا شود.

مثال:

با گذشت 3 ثانیه پیام "Hello" نمایان می شود:

نمونه چهار


    
امتحان کنید

چگونه می توان اجرای این تابع را متوقف ساخت؟
برای متوقف سازی اجرای تابع مشخص شده در ()setTimeout، از تابع ()clearTimeout کمک می گیریم.
نحوی نگارش تابع:

                        window.clearTimeout(timeoutVariable)

این متد را می توان بدون واژه ی window نوشت.
جهت استفاده از متد ()clearTimeout، می بایست به هنگام ایجاد ()setTimeout، از یک متغیر سراسری استفاده نمود:

                        myVar=setTimeout("javascript function", milliseconds);

سپس چنانچه تابع از قبل اجرا نشد، می توانید برای توقف اجرای آن، از متد ()setTimeout استفاده کنید.
نمونه ی زیر همان مثال بخش قبلی است که فقط یک دکمه ی " Stop " به آن الحاق گردیده است:

نمونه پنج


    

    

امتحان کنید

کلیه حقوق مادی و معنوی این مقاله متعلق به آموزشگاه تحلیل داده بوده و هر گونه استفاده غیر قانونی از آن پیگرد قانونی دارد.

  • 4196
  •    1648
  • تاریخ ارسال :   1394/07/27

دانلود PDF دانلود سورس کد دانشجویان گرامی اگر این مطلب برای شما مفید بود لطفا ما را در GooglePlus محبوب کنید
رمز عبور: tahlildadeh.com یا www.tahlildadeh.com
ارسال دیدگاه نظرات کاربران
شماره موبایل دیدگاه
عنوان پست الکترونیک

ارسال

آموزشگاه برنامه نویسی تحلیل داده
آموزشگاه برنامه نویسی تحلیل داده

تمامی حقوق این سایت متعلق به آموزشگاه تحلیل داده می باشد .