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

آموزش استفاده از Timer در یک React Native App

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

آموزش استفاده از Timer در یک React Native App

Timerها میتوانند نقش مهمی در یک برنامه داشته باشند.React Native، امکان استفاده از browser timer ها را پیاده سازی کرده و در اختیار می گذارد.

استفاده از Timer در React Native


  • setTimeout, clearTimeout
  • setInterval, clearInterval
  • setImmediate, clearImmediate
  • requestAnimationFrame, cancelAnimationFrame

تابع requestAnimationFrame(fn) شبیه تابع setTimeout(fn, 0) نیست. اولی پس از آنکه همه ی frame ها render شدند اجرا می شود، درحالی که دومی به سرعت و بدون هیچ تاخیری اجرا میشود (بیش از 1000x در ثانیه روی iPhone 5S).

تابع setImmediate در اتنهای اجرای block فعلی کد جاوااسکریپت، اجرا می شود، درست قبل از ارسال پاسخ به سمت پلتفرم. اگر setImmediate را درون callback یک setImmediate فراخوانی کنید، بلافاصله پس از اجرای setImmediate اول، اجرا می شود، بین این دو به سمت پلتفرم برنمی گردد.

در پیاده سازی Promise از setImmediate به عنوان اساس Async بودنش استفاده شده است.

آموزش InteractionManager در React Native

یکی از دلایلی که برنامه های native ساخته شده بسیار روان است، اجتناب از عملیات سنگین در حین تعاملات با کاربر و اجرای انیمیشن هاست. در React Native، در حال حاضر این محدودیت وجود دارد که فقط یک JS execution thread هست، اما شما می توانید از InteractionManager استفاده کنید تا مطمئن شوید که task که اجرای آن زمانبر است، پس از اتمام تعاملات / انیمیشن شروع شود.

Application ها می توانند به شیوه زیر، task ها را طوری زمان بندی کنند که پس از تعاملات اجرا شود:


InteractionManager.runAfterInteractions( () = > {
  // ...long-running synchronous task...
});

این را با روش های دیگر زمان بندی مقایسه کنید:


  • requestAnimationFrame(): برای کدی که یک view را درطول زمان animate می کند.
  • setImmediate / setTimeout / setInterval () : کد را بعدا اجرا می کند، این ممکن است اجرای انیمیشن ها را به تاخیر بیندازد.
  • runAfterInteractions (): کد را بعدا اجرا می کند، بدون اینکه انیمیشن های فعال را به تاخیر بیاندازد.

سیستمی که touch را مدیریت می کند، یک یا چند active touch را به عنوان "interaction" در نظر می گیرد و تا زمانی که تمام touch ها به پایان برسد یا لغو شوند، تمام Callback های runAfterInteractions() را به تعویق می اندازد.

InteractionManager همچنین به application ها امکان می دهد با ایجاد یک interaction 'handle' روی شروع انیمیشن ، انیمیشن ها را register کنند و پس از اتمام آن، آن را clear کنند:


var handle = InteractionManager.createInteractionHandle();
// run animation... (`runAfterInteractions` tasks are queued)
// later, on animation completion:
InteractionManager.clearInteractionHandle(handle);
// queued tasks run if all handles were cleared

  • 397
  •    0
  • تاریخ ارسال :   1398/06/03

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

ارسال

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

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