الانتقال إلى المحتوى الرئيسي
لتطبيقات TypeScript أو JavaScript العادية، أو Vue، أو Svelte، أو أي تطبيق ويب ليس له حزمة Lerix مخصصة، استخدم @lerix-dev/lerix-core. تستخدم React أو Next.js أو Angular؟ راجع React أو Next.js أو Angular. ولمعرفة ما يقدّمه التحكم بالإصدارات وكيف تضبط القواعد في لوحة التحكم، راجع التحكم بالإصدارات.

الإعداد

يعمل التحكم بالإصدارات افتراضياً مع الشاشات الجاهزة. اضبط release لتتمكن قواعد التحديث من مقارنة الإصدارات:
main.ts
يعمل وضع الصيانة دون release، ما لم تكن النافذة مقصورة على إصدارات معينة.

ما يراه المستخدمون

  • الصيانة: طبقة ثابتة فوق كل ما في الصفحة. لا يمكن النقر على بقية الصفحة ولا التركيز عليها، ويبقى التركيز داخل الطبقة. ويتحقق زر حاول مرة أخرى فوراً.
  • التحديث الإلزامي: تعيد الحزمة تحميل الصفحة لتحميل أحدث نشر، مرة واحدة كل 5 دقائق على الأكثر في كل تبويب (يُتتبَّع ذلك في sessionStorage). وإذا بقيت الصفحة قديمة بعد إعادة التحميل، تبقى رسالة على كامل الشاشة مع زر إعادة التحميل. والنقر على إعادة التحميل يعيد التحميل دائماً، فالحد يسري على إعادة التحميل التلقائية وحدها. وبهذا لا تتسبب ذاكرة تخزين مؤقت قديمة أو CDN في حلقة إعادة تحميل.
  • الاختياري أو المُوصى به: شريط أسفل الصفحة فيه تحديث (يعيد التحميل) ولاحقاً، وتخطي هذا الإصدار إن كان مسموحاً. يظهر مرة واحدة في كل جلسة تبويب، بعد تحميل الصفحة بقليل.
تُحمَّل الشاشات عند الحاجة من مدخل منفصل (@lerix-dev/lerix-core/app-control-ui)، فلا تكلّف شيئاً حتى يلزم عرض شيء. وتتبع خيار locale، أو لغة المتصفح: الإنجليزية، أو العربية من اليمين إلى اليسار.

كيف تعلم تطبيقات الويب بالتغييرات

لا تتلقى صفحات الويب الإشعار الصامت. تتحقق الحزمة عند التحميل، وعند عودة التبويب إلى الظهور أو عودة اتصال المتصفح (إذا مضى على الإجابة المحفوظة أكثر من 5 دقائق)، وكل دقيقة ما دام التبويب ظاهراً أثناء الطوارئ. راجع وصول التغييرات والعمل دون اتصال.

شاشاتك الخاصة

اضبط appControl: { ui: false }، ثم اقرأ الحالة عبر getState() وتابع تغيّرها عبر subscribe(). للحالة الأجزاء update وmaintenance وsdk، وكل منها null حين لا ينطبق شيء (الحقول في الحالة).
release-gate.ts
وتتولى الدوال المساعدة عمل الأزرار:

التحقق الآن

تتجاهل refresh() مدة صلاحية الإجابة المحفوظة، فتجلب الحالة وتعيدها. ومع ui: false لا تحدث إعادة تحميل تلقائية للتحديث الإلزامي: استدعِ openStore() من زر إعادة التحميل الخاص بك.