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

RAIL

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

بخش اول مربوط به واکنش یا Response است. این بخش می‌گوید وقتی کاربر یک عمل انجام می‌دهد، مثلاً دکمه‌ای را کلیک می‌کند، سیستم باید در کمتر از ۱۰۰ میلی‌ثانیه پاسخ دهد تا کاربر احساس کند برنامه به سرعت واکنش نشان داده. اگر این زمان بیشتر شود، کاربر متوجه تأخیر می‌شود و حس خوبی نخواهد داشت.

بخش دوم درباره انیمیشن یا Animation است. برای اینکه انیمیشن‌ها و حرکات در صفحه نرم و روان به نظر برسند، هر فریم باید در کمتر از ۱۶ میلی‌ثانیه پردازش شود. این عدد به این دلیل است که صفحه‌نمایش معمولاً ۶۰ بار در ثانیه به‌روزرسانی می‌شود و اگر هر فریم در این زمان پردازش شود، انیمیشن بدون لرزش اجرا می‌شود. توی تب پرفورمنس میشه اینو دید که چقدر فریم از دست رفته داری

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

بخش آخر هم درباره بارگذاری یا Load است. این بخش می‌گوید که صفحه اصلی باید در کمتر از یک ثانیه بارگذاری شود تا کاربر احساس کند برنامه سریع است. اگر بارگذاری بیشتر طول بکشد، احتمالاً کاربر احساس بی‌حوصلگی می‌کند و ممکن است صفحه را ترک کند.

در مورد وقت مرده یا Idle باید اضافه کنم که این بخش خیلی مهم است. بسیاری از برنامه‌ها کارهایی مانند دریافت داده از سرور، پردازش اطلاعات یا ذخیره‌سازی را در این زمان انجام می‌دهند. اما نکته کلیدی این است که این کارها نباید بیش از ۵۰ میلی‌ثانیه طول بکشند. اگر کاری بیشتر از این زمان نیاز دارد، باید آن را به بخش‌های کوچک‌تر تقسیم کرد. اینطوری برنامه همیشه آماده است که اگر کاربر کاری انجام داد، سریع پاسخ دهد. این روش باعث می‌شود برنامه هم کارهایش را انجام دهد و هم همیشه پاسخگو باشد.