پرش به مطلب اصلی

رویداد

در اپ‌ادیتور، رویداد به وقوع یک کنش، اتفاق یا تغییر وضعیت گفته می‌شود که به‌عنوان یک محرک عمل می‌کند و باعث اجرای یک یا چند عملکرد می‌شود.

به بیان ساده، رویداد مشخص می‌کند که اپلیکیشن چه زمانی باید به یک اتفاق واکنش نشان دهد.

نمونه‌هایی از رویدادها:

  • کلیک یا لمس کاربر روی یک دکمه
  • باز شدن و بارگذاری یک صفحه
  • تغییر مقدار یک فیلد ورودی
  • تغییر مقدار یک متغیر
  • قطع شدن یا وصل شدن اینترنت
نکته

رویداد به‌تنهایی کاری انجام نمی‌دهد؛ فقط زمان شروع اجرای یک یا چند عملکرد را مشخص می‌کند.


نقش رویداد در منطق اپلیکیشن

رویدادها یکی از پایه‌های اصلی منطق اپلیکیشن هستند. بدون رویداد، عملکردها زمان مشخصی برای اجرا ندارند و اپلیکیشن نمی‌داند چه زمانی باید به رفتار کاربر یا تغییرات محیطی واکنش نشان دهد. در واقع، هر تغییری در وضعیت اپلیکیشن یا هر واکنشی به رفتار کاربر، با یک رویداد آغاز می‌شود.

در اپ‌ادیتور، رویدادها نقطه شروع جریان اجرا هستند. برای مثال:

  • رویداد کلیک: وقتی کاربر روی یک دکمه، تصویر یا گروه کلیک می‌کند، یک صفحه جدید باز شود یا فرمی ارسال گردد.
  • رویداد ورود به صفحه: وقتی کاربر وارد یک صفحه خاص می‌شود، یک متغیر ایجاد میشود یا مقدار اولیه متغیر مورد نظر ثبت می شود.
  • رویداد تغییر وضعیت اینترنت: وقتی اتصال اینترنت قطع یا وصل می‌شود، یک پیام مناسب (مانند اسنک‌بار یا هشدار) به کاربر نمایش داده شود تا از وضعیت شبکه مطلع شود.
  • رویداد تغییر متغیر: وقتی مقدار یک متغیر تغییر می‌کند (مثلاً تغییر فیلتر جستجو یا تعداد محصول)، لیست محتوا یا قیمت نهایی به‌طور خودکار به‌روزرسانی شود.
  • رویداد باز شدن اپ: بلافاصله پس از اجرای اپلیکیشن توسط کاربر، وضعیت لاگین بودن او بررسی شود یا تنظیمات اولیه بارگذاری گردند.

در همه این مثال‌ها، رویداد نقطه شروع جریان اجرا است که تعیین می‌کند کدام عملکرد در چه زمانی باید اجرا شود.


تفاوت رویداد، شرط و عملکرد

برای طراحی منطق اپلیکیشن، سه مفهوم اصلی را باید از هم تفکیک کرد:

  • رویداد: چه زمانی فرآیند آغاز شود؟
  • شرط: آیا فرآیند اجازه اجرا دارد؟
  • عملکرد: چه کاری باید انجام شود؟

به زبان ساده:

مفهومپرسش اصلینقش
رویدادچه زمانی؟شروع‌کننده جریان
شرطبا چه وضعیتی؟کنترل‌کننده مجوز اجرا
عملکردچه کاری؟نتیجه یا عملیات اجرایی

الگوی رایج اجرا:

وقوع رویداد ⟵ بررسی شرط ⟵ اجرای عملکرد در صورت برقرار بودن شرط

الگوی ذهنی

برای طراحی هر منطق در اپلیکیشن، این سه سؤال را بپرسید:
«چه زمانی؟»، «با چه شرطی؟»، «چه کاری؟»

برای آشنایی بیشتر با مفاهیم مرتبط، این صفحات را ببینید:


محل تعریف رویدادها

رویدادها در اپ‌ادیتور بر اساس ماهیت و محل استفاده، در دو سطح اصلی تعریف می‌شوند:

  1. رویدادهای سطح ویجت
  2. رویدادهای سطح صفحه

۱. رویدادهای سطح ویجت

رویدادهای سطح ویجت مستقیماً به یک ویجت متصل هستند. این رویدادها معمولاً زمانی فعال می‌شوند که کاربر با همان ویجت تعامل داشته باشد یا وضعیت آن تغییر کند.

نمونه‌های رایج رویدادهای ویجت:

کلیک یا لمس

رویداد کلیک / لمس زمانی فعال می‌شود که کاربر روی یک ویجت کلیک یا آن را لمس کند.

این رویداد معمولاً برای ویجت‌هایی مانند موارد زیر استفاده می‌شود:

  • دکمه
  • تصویر
  • آیکون
  • کارت
  • گروه قابل کلیک
  • آیتم‌های لیست

مثال:

  • رویداد: کلیک روی دکمه «ادامه»
  • عملکرد: باز کردن صفحه بعدی

تغییر مقدار

رویداد تغییر مقدار زمانی فعال می‌شود که مقدار یک ویجت ورودی یا انتخابی تغییر کند.

این رویداد معمولاً در موارد زیر کاربرد دارد:

  • تایپ در فیلد متنی
  • تغییر وضعیت سوئیچ
  • انتخاب گزینه از لیست کشویی
  • تغییر مقدار چک‌باکس
  • انتخاب آیتم از یک کنترل انتخابی

مثال:

  • رویداد: تغییر متن فیلد جستجو
  • عملکرد: ذخیره مقدار در متغیر جستجو و فیلتر کردن داده‌ها
اطلاع

رویدادهای ویجت بیشتر برای واکنش به تعامل مستقیم کاربر استفاده می‌شوند.


۲. رویدادهای سطح صفحه

رویدادهای سطح صفحه در تنظیمات کلی هر صفحه تعریف می‌شوند و برای کنترل رفتار عمومی صفحه یا واکنش به وضعیت‌های کلی اپلیکیشن کاربرد دارند.

مهم‌ترین رویدادهای سطح صفحه عبارت‌اند از:

باز شدن صفحه

رویداد باز شدن صفحه یا On Page Load زمانی اجرا می‌شود که صفحه بارگذاری و آماده نمایش شود.

کاربردهای رایج:

  • دریافت داده‌ها از سرور
  • مقداردهی اولیه متغیرها
  • بررسی وضعیت ورود کاربر
  • آماده‌سازی محتوای صفحه
  • تنظیم وضعیت اولیه رابط کاربری

مثال:

  • رویداد: باز شدن صفحه «پروفایل»
  • عملکرد: دریافت اطلاعات کاربر و نمایش آن‌ها در صفحه

قبل از خروج از صفحه

رویداد قبل از خروج از صفحه درست پیش از بسته شدن صفحه اجرا می‌شود؛ چه کاربر دکمه برگشت گوشی را بزند و چه عملکرد بستن صفحه فعلی اجرا شود.

چون صفحه هنوز باز است، عملکردهای این رویداد روی خود همین صفحه اجرا می‌شوند و به همه اطلاعات، ویجت‌ها و متغیرهای آن دسترسی دارند.

این رویداد روی صفحه اصلی اپ هم اجرا می‌شود؛ یعنی می‌توانید با آن جلوی بسته شدن خود اپ با دکمه برگشت را بگیرید یا پیش از خروج از کاربر تأیید بگیرید.

کاربردهای رایج:

  • ذخیره اطلاعات فرم پیش از خروج
  • پرسیدن «آیا مطمئن هستید؟» از کاربر
  • پاک کردن متغیرهای موقت صفحه
  • توقف پخش صوت یا ویدئو

لغو خروج از صفحه

در تنظیمات این رویداد گزینه خروج از صفحه لغو شود وجود دارد. با فعال کردن آن می‌توانید یک شرط برای لغو خروج تعیین کنید:

  • اگر شرط برقرار باشد، صفحه بسته نمی‌شود و کاربر در همان صفحه می‌ماند.
  • اگر شرط برقرار نباشد، صفحه مثل حالت عادی بسته می‌شود.
  • اگر گزینه فعال باشد ولی شرطی تعیین نشود، خروج همیشه لغو می‌شود.

مثال:

  • رویداد: قبل از خروج از صفحه «ثبت سفارش»
  • شرط لغو خروج: متغیر formChanged برابر True باشد
  • عملکرد: نمایش دیالوگ «تغییرات ذخیره نشده است»
توجه

اگر گزینه لغو خروج را بدون شرط فعال کنید، کاربر دیگر نمی‌تواند با دکمه برگشت از صفحه خارج شود. در این حالت حتماً یک راه خروج دیگر (مثلاً دکمه‌ای که متغیر تأیید را تنظیم کند) در صفحه قرار دهید.

گرفتن تأیید از کاربر پیش از خروج

با گزینه پیش از خروج از کاربر تاییدیه گرفته شود، اپ پیش از بستن صفحه از کاربر می‌پرسد. برای این پرسش دو شکل وجود دارد:

۱. دیالوگ با دکمه‌های خروج و ماندن

یک پنجره پرسش نمایش داده می‌شود و این موارد را می‌توانید تنظیم کنید:

تنظیمتوضیح
عنوان پرسشعنوان بالای پنجره
متن پرسشتوضیحی که به کاربر نمایش داده می‌شود
دکمه خروج از صفحهمتن دکمه تأیید (پیش‌فرض: بله)
دکمه ماندن در صفحهمتن دکمه انصراف (پیش‌فرض: خیر)

اگر کاربر دکمه ماندن را بزند یا پنجره را با دکمه برگشت یا کلیک بیرون آن ببندد، در همان صفحه می‌ماند.

۲. پیام کوتاه «یک بار دیگر بزنید تا خارج شوید»

به‌جای پنجره پرسش، یک پیام کوتاه نمایش داده می‌شود و صفحه بسته نمی‌شود. اگر کاربر تا پایان مهلت زدن دوباره یک بار دیگر دکمه برگشت را بزند، صفحه بسته می‌شود یا از اپ خارج می‌شود.

تنظیمتوضیح
متن پیاممتن پیام کوتاه (پیش‌فرض: «برای خروج دوباره دکمه برگشت را بزنید»)
مهلت زدن دوباره (ثانیه)بین ۱ تا ۱۰ ثانیه؛ پیش‌فرض ۲ ثانیه

این حالت بیشتر برای صفحه اصلی اپ به کار می‌رود تا کاربر با یک لمس اشتباهی از اپ خارج نشود.

شرط پرسش

برای پرسش هم می‌توانید یک شرط بگذارید. اگر شرطی تعیین نشود، همیشه پرسیده می‌شود. با شرط می‌توانید پرسش را محدود کنید؛ مثلاً فقط وقتی فرم پر شده باشد.

در متن‌های پرسش می‌توانید از متغیر با الگوی {{myvar}} استفاده کنید.

ترتیب اجرا
  1. اگر لغو خروج فعال باشد و شرطش برقرار باشد، خروج بدون هیچ پرسشی لغو می‌شود.
  2. در غیر این صورت، اگر تاییدیه فعال باشد و شرطش برقرار باشد، از کاربر پرسیده می‌شود.
  3. اگر کاربر ماندن را انتخاب کند، صفحه بسته نمی‌شود و عملکردهای این رویداد هم اجرا نمی‌شوند؛ از دید کاربر اصلاً خروجی رخ نداده است.
  4. اگر کاربر خروج را تأیید کند، ابتدا عملکردهای رویداد اجرا و سپس صفحه بسته می‌شود.
نکته

تأییدیه هم با دکمه برگشت و هم با عملکرد «بستن صفحه فعلی» نمایش داده می‌شود؛ لازم نیست برای دکمه «بستن» صفحه، منطق جداگانه‌ای بسازید.


خروج از صفحه

رویداد خروج از صفحه بعد از بسته شدن صفحه اجرا می‌شود.

چون در این لحظه دیگر صفحه‌ای وجود ندارد، عملکردهای این رویداد روی صفحه‌ای اجرا می‌شوند که بعد از خروج دیده می‌شود. برای مثال اگر عملکرد «بستن صفحه فعلی» را در این رویداد بگذارید، صفحه مقصد بسته می‌شود، نه صفحه‌ای که تازه بسته شده است.

کاربردهای رایج:

  • تازه‌سازی محتوای صفحه قبلی بعد از بازگشت کاربر
  • به‌روزرسانی متغیرها بر اساس کاری که کاربر در صفحه بسته‌شده انجام داده است
  • ثبت وضعیت خروج کاربر از یک مرحله

اطلاعات صفحه‌ای که بسته شده است

برای دسترسی به داده‌های صفحه‌ای که تازه بسته شده، از متغیرهای sys.exitedPage.* استفاده کنید؛ مانند sys.exitedPage.pageId یا sys.exitedPage.entity.title.

در این رویداد، متغیرهای sys.inPage.* به صفحه مقصد اشاره می‌کنند، نه صفحه بسته‌شده.

چه زمانی اجرا می‌شود؟

رویدادهای «قبل از خروج» و «خروج از صفحه» فقط زمانی اجرا می‌شوند که صفحه با دکمه برگشت یا عملکرد «بستن صفحه فعلی» بسته شود.

رویداد «خروج از صفحه» هنگام بسته شدن خود اپ اجرا نمی‌شود، چون صفحه‌ای باقی نمی‌ماند که عملکردها روی آن اجرا شوند؛ برای آن حالت از رویداد «قبل از خروج از صفحه» استفاده کنید.

این رویدادها برای این صفحه‌ها اجرا نمی‌شوند:

  • صفحه‌هایی که به‌عنوان قالب ردیف لیست پویا، تب یا هدر داخل صفحه دیگری نمایش داده می‌شوند
  • صفحه‌هایی که با ویجت صفحه‌نما داخل صفحه دیگری قرار گرفته‌اند
  • صفحه‌هایی که به‌صورت دیالوگ یا پنجره پایین‌صفحه باز شده‌اند

وضعیت اتصال اینترنت

این رویداد زمانی فعال می‌شود که وضعیت اتصال شبکه تغییر کند؛ یعنی اینترنت قطع یا دوباره وصل شود.

کاربردهای رایج:

  • نمایش پیام قطع اتصال
  • باز کردن صفحه آفلاین
  • تلاش مجدد برای دریافت داده‌ها بعد از وصل شدن اینترنت
  • غیرفعال کردن بخش‌هایی که نیاز به اینترنت دارند

مثال:

  • رویداد: قطع شدن اینترنت
  • عملکرد: نمایش پیام «اتصال اینترنت قطع است»

تایمر صفحه

رویداد تایمر صفحه امکان اجرای تکرارشونده یک یا چند عملکرد را فراهم می‌کند.

برای مثال، با این رویداد می‌توان در هر ۱ ثانیه یک عملکرد را اجرا کرد.

این رویداد برای مواردی مانند به‌روزرسانی شمارنده، بررسی وضعیت صفحه یا اجرای عملیات‌های دوره‌ای مناسب است.

مثال:

  • رویداد: تایمر صفحه
  • عملکرد: افزایش مقدار متغیر ثانیه‌شمار

نکته: در عملکردهای متصل به تایمر صفحه، از اجرای عملیات‌های سنگین خودداری کنید.


تغییر متغیر

رویداد تغییر متغیر زمانی اجرا می‌شود که مقدار یک متغیر مشخص تغییر کند.

این رویداد برای ساخت رابط‌های پویا و واکنش‌پذیر بسیار کاربردی است.

کاربردهای رایج:

  • واکنش به تغییر وضعیت ورود کاربر
  • به‌روزرسانی رابط کاربری بر اساس تغییر داده
  • اجرای عملکرد پس از تغییر مقدار یک فیلتر
  • نمایش یا مخفی‌سازی بخش‌هایی از صفحه
  • هماهنگ کردن چند ویجت با یک متغیر مشترک

مثال:

  • رویداد: تغییر مقدار متغیر isLoggedIn
  • عملکرد: نمایش بخش حساب کاربری یا هدایت کاربر به صفحه ورود

محدود کردن رویداد به متغیرهای مشخص

این رویداد به‌صورت پیش‌فرض با تغییر هر متغیری اجرا می‌شود. توجه کنید که متغیرهای سیستمی مانند تایمر و متغیرهای تاریخ و ساعت هر ثانیه تغییر می‌کنند؛ پس اگر رویداد را محدود نکنید، عملکردهای آن هم هر ثانیه اجرا می‌شوند.

برای جلوگیری از این کار، در تنظیمات رویداد گزینه فقط با تغییر متغیرهای مشخص اجرا شود را فعال کنید و نام متغیرهای موردنظر را به فهرست متغیرهای زیر نظر اضافه کنید. با دکمه «افزودن متغیر» می‌توانید چند متغیر را زیر نظر بگیرید.

نکات این فهرست:

  • انتخاب یک متغیر، زیرمجموعه‌های آن را هم در بر می‌گیرد؛ با انتخاب user، تغییر user.name هم رویداد را اجرا می‌کند و برعکس، اگر user.name انتخاب شده باشد، مقداردهی کل user هم رویداد را اجرا می‌کند.
  • اگر هیچ متغیری وارد نشود، محدودیتی ذخیره نمی‌شود و رویداد مثل قبل با تغییر هر متغیری اجرا می‌شود.
  • هر رویداد فهرست جداگانه خودش را دارد؛ می‌توانید در یک صفحه چند رویداد «تغییر متغیر» با متغیرهای متفاوت بسازید.
نکته

اگر عملکردهای صفحه بدون دلیل مشخص و پشت سر هم اجرا می‌شوند، احتمالاً یک رویداد «تغییر متغیر» بدون محدودیت دارید. فهرست متغیرهای زیر نظر را برای آن تنظیم کنید.

نکته: اپ‌ادیتور به‌طور پیوسته در حال توسعه است و ممکن است در نسخه‌های بعدی، رویدادهای سیستمی جدیدی نیز اضافه شوند.


کاربردهای رویدادها

رویدادها به اپلیکیشن شما «هوشمندی زمانی» می‌دهند؛ یعنی اپلیکیشن می‌تواند در زمان مناسب به رفتار کاربر، تغییر داده‌ها یا شرایط محیطی واکنش نشان دهد.

مهم‌ترین کاربردهای رویدادها عبارت‌اند از:

مقداردهی اولیه

با استفاده از رویداد باز شدن صفحه، می‌توانید داده‌ها را واکشی کنید یا متغیرهای اولیه را مقداردهی کنید.

مثال:

  • دریافت لیست محصولات هنگام باز شدن صفحه فروشگاه
  • تنظیم مقدار پیش‌فرض فیلترها
  • بررسی وضعیت ورود کاربر

مسیریابی

رویدادهای ویجت، مخصوصاً کلیک، برای جابه‌جایی کاربر بین صفحات بسیار استفاده می‌شوند.

مثال:

  • کلیک روی دکمه «ورود» و باز شدن صفحه داشبورد
  • کلیک روی کارت محصول و باز شدن صفحه جزئیات محصول
  • کلیک روی دکمه «بازگشت» و انتقال به صفحه قبلی

به‌روزرسانی رابط کاربری

با ترکیب رویدادها، متغیرها و شرط‌ها، می‌توان رابط کاربری پویا ایجاد کرد.

مثال:

  • تغییر مقدار متغیر showDetails
  • بررسی شرط نمایش یک ویجت
  • نمایش یا مخفی شدن بخش جزئیات

مدیریت وضعیت شبکه

رویدادهای وضعیت اینترنت کمک می‌کنند اپلیکیشن در برابر قطع و وصل شدن اتصال مقاوم‌تر عمل کند.

مثال:

  • نمایش پیام آفلاین
  • هدایت کاربر به صفحه مخصوص حالت آفلاین
  • تلاش مجدد برای دریافت داده‌ها پس از وصل شدن اینترنت

اتوماسیون داخلی

با رویداد تایمر، می‌توان برخی فرآیندها را به‌صورت خودکار و زمان‌بندی‌شده اجرا کرد.

مثال:

  • به‌روزرسانی شمارنده
  • بررسی وضعیت پرداخت
  • بررسی وضعیت ارسال فایل
  • تازه‌سازی داده‌ها در بازه‌های زمانی مشخص

مثال‌های مفهومی از جریان رویدادها

مثال ۱: مسیریابی ساده

در این مثال، کاربر با کلیک روی یک دکمه به صفحه دیگری منتقل می‌شود.

  • رویداد: کلیک روی دکمه «ورود»
  • عملکرد: باز کردن صفحه «داشبورد»

جریان اجرا:

  1. کاربر روی دکمه کلیک می‌کند.
  2. رویداد کلیک فعال می‌شود.
  3. عملکرد باز کردن صفحه اجرا می‌شود.
  4. کاربر وارد صفحه داشبورد می‌شود.

مثال ۲: نمایش و مخفی‌سازی پویا

در این مثال، نمایش یک بخش از صفحه بر اساس مقدار یک متغیر کنترل می‌شود.

  • متغیر: showDetails
  • نوع متغیر: منطقی / Boolean
  • رویداد: کلیک روی دکمه «نمایش جزئیات»
  • عملکرد: تغییر مقدار showDetails از False به True

جریان اجرا:

  1. کاربر روی دکمه «نمایش جزئیات» کلیک می‌کند.
  2. رویداد کلیک اجرا می‌شود.
  3. مقدار متغیر showDetails تغییر می‌کند.
  4. شرط نمایش ویجت بررسی می‌شود.
  5. اگر مقدار showDetails برابر True باشد، ویجت جزئیات نمایش داده می‌شود.

این الگو برای ساخت رابط‌های پویا بسیار کاربردی است.


مثال ۳: جستجوی زنده

در این مثال، با تایپ کاربر در فیلد جستجو، نتایج به‌روزرسانی می‌شوند.

  • رویداد: تغییر مقدار متغیر
  • عملکردها:
    1. ذخیره مقدار تایپ‌شده در متغیر جستجو
    2. اجرای فیلتر یا دریافت داده‌های جدید

جریان اجرا:

  1. کاربر در فیلد جستجو تایپ می‌کند.
  2. رویداد تغییر مقدار متغیر فعال می‌شود.
  3. مقدار جدید در متغیر ذخیره می‌شود.
  4. لیست نتایج بر اساس مقدار جدید به‌روزرسانی می‌شود.
هشدار

در جستجوی زنده، اگر با هر تغییر کوچک یک درخواست سنگین به سرور ارسال شود، ممکن است عملکرد اپلیکیشن کاهش پیدا کند. بهتر است در چنین مواردی منطق اجرا بهینه طراحی شود.


مثال ۴: مدیریت آفلاین بودن کاربر

در این مثال، اپلیکیشن هنگام قطع شدن اینترنت به کاربر واکنش نشان می‌دهد.

  • رویداد: قطع شدن اتصال اینترنت در سطح صفحه
  • عملکرد: نمایش پیام خطا یا باز کردن صفحه آفلاین

جریان اجرا:

  1. اتصال اینترنت کاربر قطع می‌شود.
  2. رویداد قطع اتصال فعال می‌شود.
  3. عملکرد نمایش پیام یا مسیریابی اجرا می‌شود.
  4. کاربر از وضعیت اتصال مطلع می‌شود.

مثال ۵: پردازش زمان‌بندی‌شده

در این مثال، یک تایمر صفحه به‌صورت دوره‌ای اجرا می‌شود.

  • رویداد: تایمر صفحه با بازه ۱ ثانیه
  • عملکرد: به‌روزرسانی مقدار ثانیه‌شمار

جریان اجرا:

  1. صفحه باز می‌شود.
  2. تایمر صفحه فعال می‌شود.
  3. در هر بازه زمانی مشخص، عملکرد اجرا می‌شود.
  4. مقدار شمارنده یا وضعیت موردنظر به‌روزرسانی می‌شود.

ترکیب رویدادها با شرط‌ها

در بسیاری از سناریوها، لازم است عملکرد فقط در شرایط خاصی اجرا شود. در این حالت، رویداد به‌تنهایی کافی نیست و باید از شرط استفاده شود.

مثال:

  • رویداد: کلیک روی دکمه «خرید»
  • شرط: کاربر وارد حساب کاربری شده باشد
  • عملکرد: رفتن به صفحه پرداخت

اگر شرط برقرار نباشد، می‌توان عملکرد دیگری اجرا کرد؛ مثلاً نمایش پیام یا انتقال کاربر به صفحه ورود.

نمونه جریان:

  1. کاربر روی دکمه خرید کلیک می‌کند.
  2. رویداد کلیک فعال می‌شود.
  3. شرط ورود کاربر بررسی می‌شود.
  4. اگر کاربر وارد شده باشد، صفحه پرداخت باز می‌شود.
  5. اگر وارد نشده باشد، صفحه ورود نمایش داده می‌شود.

ترتیب اجرای عملکردها در یک رویداد

یک رویداد می‌تواند چندین عملکرد را پشت سر هم اجرا کند. در این حالت، ترتیب عملکردها اهمیت زیادی دارد؛ مخصوصاً زمانی که یک عملکرد به نتیجه عملکرد قبلی وابسته باشد.

مثال:

  1. ذخیره مقدار فرم در متغیر
  2. اعتبارسنجی مقدار متغیر
  3. ارسال داده به سرور
  4. نمایش پیام موفقیت
  5. انتقال کاربر به صفحه بعدی

اگر ترتیب این عملکردها اشتباه باشد، ممکن است نتیجه نهایی درست نباشد. برای مثال، اگر قبل از اعتبارسنجی، داده ارسال شود، ممکن است اطلاعات نامعتبر به سرور فرستاده شود.

نکته

وقتی چند عملکرد را به یک رویداد متصل می‌کنید، ابتدا وابستگی‌های آن‌ها را مشخص کنید و سپس ترتیب اجرا را بچینید.


رویدادهای پرتکرار

برخی رویدادها ممکن است در مدت کوتاه چندین بار اجرا شوند. این رویدادها اگر به‌درستی مدیریت نشوند، می‌توانند باعث افت عملکرد اپلیکیشن شوند.

نمونه رویدادهای پرتکرار:

  • تغییر مقدار هنگام تایپ در فیلد ورودی
  • تایمرهای کوتاه مثل هر ۱ ثانیه
  • تغییرات سریع متغیرها
  • تعاملات پی‌درپی کاربر با ویجت‌ها

در این نوع رویدادها، بهتر است از اجرای موارد زیر پرهیز شود:

  • درخواست‌های سنگین و متعدد به سرور
  • زنجیره طولانی عملکردها
  • پردازش‌های غیرضروری
  • تغییرات پی‌درپی و بدون نیاز در رابط کاربری

بهترین تجربیات در مدیریت رویدادها

برای طراحی بهتر و پایدارتر منطق اپلیکیشن، نکات زیر را رعایت کنید:

  • هر رویداد را با هدف مشخص تعریف کنید.
  • از اتصال عملکردهای زیاد و غیرضروری به یک رویداد خودداری کنید.
  • در رویدادهای پرتکرار، پردازش‌های سنگین اجرا نکنید.
  • ترتیب اجرای عملکردها را با دقت تنظیم کنید.
  • اگر اجرای عملکرد به وضعیت خاصی وابسته است، از شرط استفاده کنید.
  • برای رفتارهای پیچیده، از متغیرها برای مدیریت وضعیت استفاده کنید.
  • رویدادهای صفحه را فقط در صورت نیاز فعال کنید.
  • در تایمرها، بازه زمانی را منطقی انتخاب کنید.
  • برای مدیریت آفلاین بودن، رویدادهای وضعیت شبکه را در صفحات مهم در نظر بگیرید.
  • منطق‌های مشابه را تا حد امکان ساده، قابل فهم و قابل نگهداری طراحی کنید.
توجه

استفاده بیش از حد از رویدادها، مخصوصاً در صفحات پیچیده، می‌تواند باعث سخت شدن نگهداری پروژه شود. بهتر است هر رویداد مسئولیت مشخص و محدودی داشته باشد.


جمع‌بندی

رویدادها مشخص می‌کنند اپلیکیشن چه زمانی باید واکنش نشان دهد. آن‌ها نقطه شروع اجرای عملکردها هستند و در کنار شرط‌ها و متغیرها، منطق تعاملی اپلیکیشن را شکل می‌دهند.

به‌طور خلاصه:

  • رویداد زمان شروع یک جریان را مشخص می‌کند.
  • شرط تعیین می‌کند که آن جریان اجازه اجرا دارد یا نه.
  • عملکرد مشخص می‌کند که چه کاری باید انجام شود.
  • رویدادهای ویجت برای تعاملات مستقیم کاربر مناسب‌اند.
  • رویدادهای صفحه برای رفتارهای عمومی‌تر مانند بارگذاری، تایمر و وضعیت اینترنت استفاده می‌شوند.

پیشنهاد برای مطالعه بعدی: