دليل أسطرلاب English GitHub

القراءة دون اتصال

الملاحظات التي فتحتها من قبل تبقى مقروءة حين تنقطع الشبكة.


أسطرلاب برنامج واحد يعمل على جهاز واحد، والمتصفح نافذة تطلّ عليه. في العادة، كلّ ملاحظة تفتحها تُجلب من ذلك الجهاز. أما القراءة دون اتصال فتعني أن النافذة تتذكر آخر ما عرضته لك. ويتولى ذلك مساعد صغير داخل المتصفح اسمه عامل الخدمة (service worker): يحتفظ بنسخة من التطبيق ومن كلّ ملاحظة قرأتها. فإذا غابت الشبكة، في قطار أو طائرة أو أثناء إعادة تشغيل الخادم، فتح العنوان نفسه الملاحظة نفسها من النسخة المحفوظة على جهازك.

ما يُحتفظ به

  • التطبيق نفسه. الصفحة والشيفرة التي تشغّلها، حتى يفتح التطبيق أصلًا حين لا يجد خادمًا يكلّمه؛ ومعهما بيان تطبيق الويب الذي تُفتح منه النسخة المثبَّتة، ويُبقى على سياسة الشبكة أولًا لأنه يُولَّد من إعداداتك لا من البناء.
  • ما قرأته. كلّ ملاحظة فتحتها، ومعها شجرة الملاحظات والروابط الراجعة إلى تلك الملاحظة وجلسة دخولك. تتجدد النسخة كلما حُمّلت ملاحظة بنجاح. وهي نسخة مما قرأته آخر مرة وأنت متصل، لا صورة كاملة عن الخزانة: فالملاحظة التي لم تفتحها قط ليست على الجهاز.
  • ولا شيء غير ذلك. البحث وملفات PDF والمرفقات والمخطط وكلّ ما تحفظه يحتاج إلى الخادم. فمن دون اتصال يعود البحث فارغًا ولا يُفتح ملف PDF.

النسخة خاصة بجهاز واحد ومتصفح واحد وجلسة دخول واحدة. ولا تُحفظ إلا وأنت مسجّل الدخول مديرًا والمفتاح مشغّل. تسجيل الخروج يمسحها، وزائر الموقع المنشور لا يحصل على نسخة أبدًا.

التحرير دون اتصال

المحرر لا يُقفل. إذا عدّلت ملاحظة وأنت دون اتصال بقي التعديل في التبويب، ويظل التطبيق يحاول حفظه حتى تعود الشبكة، تمامًا كما يفعل حين يتوقف الخادم لحظة. يقول شريط الحالة ما زال يحاول، ويبقى نصك حيث تركته. لا تغلق التبويب قبل أن يتمّ الحفظ، فالنسخة التي على الجهاز هي ما قرأته، لا ما كتبته.

الشريط

ما دام المتصفح يرى أن لا شبكة، يظهر شريط رمادي فوق اللوحات مكتوب عليه دون اتصال، ويذكّرك بأن تعديلاتك ستُحفظ حين تعود الشبكة. ويختفي الشريط بمجرد عودتها.

الإعدادات

الإعدادات ← هذا الجهاز ← القراءة دون اتصال يشغّل النسخة أو يوقفها على هذا الجهاز، وهو مشغّل افتراضيًا. أما امسح النسخة دون اتصال فيحذفها فورًا، وهذا مفيد على جهاز مشترك، أو مع خزانة لا تحب أن تترك لها أثرًا. تطبيق سطح المكتب لا يعرض هذا الصف أصلًا، لأن خادمه يعمل على الجهاز نفسه، فليس هناك ما ينقطع عنه.

كيف يعمل

عامل الخدمة هو الملف sw.js في جذر الموقع. يُقدَّم بترويسة Cache-Control: no-cache حتى يلاحظ المتصفح أي بناء جديد في الزيارة التالية. أما القواعد التي يتبعها فهي في shared/offlinePolicy.ts. الصفحة وقراءات الملاحظات تسير على مبدأ الشبكة أولًا ثم النسخة: يجرّب العامل الخادم، فإن أخفق لجأ إلى النسخة. أما ملفات الشيفرة المبنية، وأسماؤها تحمل بصمة محتواها، فمبدؤها النسخة أولًا، لأنها لا تتغير بعد جلبها. وكلّ ما عدا ذلك يذهب إلى الخادم مباشرة. لكل بناء نسخته الخاصة، ويمسح نسخة البناء السابق حين يحلّ محله. ولا تسمح المتصفحات بعمّال الخدمة إلا عبر HTTPS أو على localhost؛ فعلى عنوان http:// عادي في شبكة محلية لا يفعل المفتاح شيئًا، ويعمل الموقع كما كان دائمًا.

صفحات ذات صلة

حرّر هذه الصفحة على GitHub

أسطرلاب برنامج حر. هذه الصفحات مبنية من ملفات Markdown في مجلد docs بالمستودع.