هل تؤدي قراءة مدخل في اليوميات إلى تحميل صورته البعيدة مرة أخرى؟
عادةً، يمكن أن يؤدي إدخال اليوميات الذي يحتوي على عنوان URL لصورة إلى قيام التطبيق أو المتصفح بطلب تلك الصورة عند عرض المدخل. لكن هذا لا يعني أنه يتم تنزيل الصورة من الخادم البعيد في كل مرة: فقد توفرها ذاكرة التخزين المؤقت الصالحة للمتصفح، أو قد يتعامل التطبيق مع الصور بطريقة أخرى. الفحص العملي الأول هو ما إذا كان المدخل يشير إلى عنوان URL على الويب أو إلى صورة محفوظة مع اليوميات. يمكن أن يقدم اختبار عدم الاتصال أدلة، ولكنه لا يمكن أن يثبت عدم حدوث أي طلب شبكة.
ماذا يعني رابط الصورة في Markdown؟
في لغة Markdown القياسية، تُحدد صيغة الصورة مثل `` الصورة عبر عنوان URL الخاص بها. يُظهر [البرنامج التعليمي لصور CommonMark](https://commonmark.org/help/tutorial/08-images.html) صراحةً عناوين URL الكاملة للويب كوجهات صالحة للصور. لا تعني هذه الصيغة بحد ذاتها أنه قد تم نسخ الصورة إلى اليوميات أو تخزينها محليًا.
عندما يعرض القارئ هذا المدخل، قد يقوم البرنامج بتقديم عنوان URL كمصدر للصورة. في صفحة الويب، يقوم عنصر `<img>` في المتصفح بتضمين صورة في المستند، وتحدد سمة `src` الخاصة به المورد المراد عرضه، كما هو موضح في [مرجع `<img>` على MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img). يعتمد وصول الطلب إلى الخادم البعيد على التخزين المؤقت والتطبيق المحدد والمتصفح ومسار الشبكة.
هل يتصل المتصفح بالخادم في كل قراءة؟
لا توجد قاعدة ثابتة تنص على وجوب جلب كل صورة من جديد. تتحقق المتصفحات من ذاكرة التخزين المؤقت لـ HTTP عند تقديم الطلبات؛ وإذا كانت هناك استجابة مخزنة مؤقتًا مطابقة وصالحة، فيمكن للمتصفح استخدامها دون الاتصال بالخادم الأصلي لتلك الصورة. يوضح [دليل التخزين المؤقت لـ HTTP على web.dev](https://web.dev/articles/http-cache) أن حداثة البيانات تعتمد على معلومات التخزين المؤقت للاستجابة وأنه يمكن إعادة استخدام الاستجابة المخزنة مؤقتًا طالما بقيت حديثة.
إذا كانت الاستجابة المخزنة مؤقتًا قديمة أو تتطلب التحقق من الصحة، فقد يتصل المتصفح بالخادم للتحقق مما إذا كانت النسخة المخزنة لا تزال سارية. يمكن للخادم تأكيد بقاء النسخة صالحة، لذا لا يعني هذا التحقق بالضرورة تنزيل الصورة الكاملة مرة أخرى. يغطي [دليل التخزين المؤقت لـ HTTP على MDN](https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/Caching) الحداثة والتحقق من الصحة والحالات التي لا ينبغي فيها تخزين الاستجابات مؤقتًا. يمكن أن يؤدي مسح ذاكرة التخزين المؤقت، أو انتهاء صلاحيتها، أو تغير عناوين URL، أو سلوك التطبيق، أو إعدادات ذاكرة التخزين المؤقت إلى تغيير ما يحدث في قراءة لاحقة.
لذا فإن الإجابة الدقيقة هي: قد يؤدي عرض صورة بعيدة إلى طلب شبكة، ولكنه لا ينقل بالضرورة وحدات البايت الخاصة بالصورة في كل مرة — أو يتصل بالمصدر عند كل عرض. يمكن أن يبدو العرض من الذاكرة المؤقتة والجلب الجديد متطابقين تمامًا على الشاشة.
كيف يمكنك التمييز بين عنوان URL والمرفق المحفوظ؟
افحص مرجع الصورة أو معلومات المرفقات الخاصة بالتطبيق، إذا كان يعرضها. الوجهة التي تبدأ بـ `https://` أو `http://` تشير إلى عنوان ويب بعيد. أما المسار النسبي أو اسم المرفق الخاص بالتطبيق فيتطلب مزيدًا من التحقق. في صفحة الويب، يمكن أن يتحول المسار النسبي إلى عنوان ويب آخر؛ وهذا لا يثبت أن الملف محلي على جهازك. تحدد قواعد التخزين والعرض الخاصة بتطبيق اليوميات وجهة الملف. لا يضمن استخدام Markdown وحده أن يكون المرجع الذي يبدو محليًا قابلاً للنقل أو أن الملف مخزن داخل المدخل.
التمييز المفيد يكمن في ما يجب أن يظل متاحًا: يعتمد عنوان URL البعيد على استمرار وجود المورد البعيد وإمكانية الوصول إليه؛ بينما يعتمد المرفق المحلي على وجود الملف المعني في المكان الذي يتوقعه التطبيق. للحفاظ على ملفات صور اليوميات، اتبع تعليمات التصدير أو النسخ الاحتياطي الخاصة بالتطبيق نفسه. ينصب تركيز هذه المقالة على مسألة التحميل عن بُعد المنفصلة، وليس ضمانًا بشأن تنسيق التخزين لأي تطبيق بعينه.
ما الذي يمكن أن يظهره إجراء مقارنة في وضع عدم الاتصال؟
لإجراء فحص آمن، استخدم عنوان URL لصورة غير حساسة في مدخل اختباري مؤقت. اعرضه وأنت متصل بالإنترنت، ثم افصل الجهاز عن الشبكة وأعد فتح المدخل. إذا ظهرت الصورة في وضع عدم الاتصال، فهذا يتوافق مع توفر نسخة مخزنة مؤقتًا أو نسخة محلية أخرى. وإذا لم تظهر، فقد يحتاج التطبيق إلى المورد البعيد في تلك اللحظة — لكن النتيجة وحدها لا تحدد السبب الدقيق.
لا يمكن لهذه المقارنة أن تثبت أن القراءة العادية عبر الإنترنت لا تُجري أي طلبات شبكة. قد يكون المتصفح قد أجرى طلبًا قبل قطع الاتصال، أو فحص مشغّل الخدمة (service-worker) أو ذاكرة التخزين المؤقت للتطبيق، أو عرض صورة مخزنة محليًا بالفعل. وبالمثل، فإن رؤية الصورة أثناء عدم الاتصال بالإنترنت لا تثبت أن كود Markdown للمدخل يحتوي على مرفق: فقد يكون التطبيق قد خزن الاستجابة البعيدة مؤقتًا فقط. بالنسبة لليوميات المستندة إلى المتصفح، راقب سلوك الطلب باستخدام أدوات مطوري الشبكة في المتصفح أثناء الاتصال بالإنترنت وافحص طلب الصورة وحالة التخزين المؤقت الخاصة بها؛ حيث تصف النتائج إعداد الاختبار هذا فقط، وليس كل قراءة أو جهاز لاحق.
قائمة تحقق عملية
بالنسبة للمدخل الذي يجب أن يُعرض بشكل متوقع، افحص مرجع الصورة، ثم تحقق مما إذا كان المرفق المحلي المقابل موجودًا إذا كان من المفترض أن يكون محليًا. إذا كان عنوان URL بعيدًا، فتوقع أن يعتمد التوفر وسلوك التحديث على المضيف والتخزين المؤقت. استخدم لوحة الشبكة عبر الإنترنت لمراقبة الطلبات وإعادة الفتح في وضع عدم الاتصال كمقارنة محدودة. تعامل مع كل نتيجة كدليل حول التطبيق والمتصفح وحالة ذاكرة التخزين المؤقت التي تم اختبارها — وليس كضمان شامل.
