تخطي إلى المحتوى الرئيسي

ArtinTech Solution

Serving Newspaper Pages Fast: WebP, a Medium Size and Zoom on Demand

صفحة الصحيفة في النسخة الإلكترونية صورة كبيرة: 2000 بكسل على الضلع الطويل ومليئة بالخط الصغير. يتصفح القارئ عشر صفحات أو عشرين، غالبًا على هاتف باتصال متقطع. عندما بنينا الإصدار 1.1 من Inkfold، منصتنا للصحف الإلكترونية المستضافة ذاتيًا، كانت سرعة الصفحات أول ما أعدنا كتابته.

حفظ كل صفحة ثلاث مرات

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

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

الحجم المتوسط أولًا والكامل عند الحاجة فقط

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

صفحة صحيفة مكبّرة في قارئ Inkfold
عند التكبير تُحمّل الصفحة الكاملة فقط حين تصبح البكسلات الإضافية مرئية.

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

قص الأخبار مرة واحدة ثم تخزينها مؤقتًا

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

الوسائط على أي قرص أو خلف شبكة CDN

يمر كل وصول إلى الملفات عبر دالة مساعدة واحدة بدل قرص محلي ثابت. مع INKFOLD_DISK=s3 تنتقل صور الصفحات وملفات PDF والقصاصات إلى Amazon S3 أو Cloudflare R2 أو DigitalOcean Spaces. ومن يفضّل إبقاء الملفات محليًا يستطيع عبر INKFOLD_MEDIA_URL تمرير روابط الصور عبر شبكة CDN من نوع pull مثل Cloudflare أو Bunny مع الموقع كمصدر. وتحتفظ أسماء الملفات بجزء عشوائي من 20 حرفًا، فلا يمكن تخمين الصفحات المدفوعة أيًا كان التخزين.

أهم النقاط

  • رمّز مرة واحدة عند الرفع بثلاثة أحجام، ودع الخادم يختار WebP متى استطاع.
  • اعرض الصورة المتوسطة أولًا، وحمّل الصفحة الكاملة فقط حين يجعل التكبير الفرق مرئيًا.
  • خزّن المقاطع المولدة مؤقتًا بمفتاح يتغير بتغير المصدر.
  • مرّر كل وصول إلى الملفات عبر طبقة واحدة ليصبح S3 أو CDN مجرد إعداد.

المقال التالي في السلسلة: عارض بصفحتين متقابلتين يوحّد ارتفاعهما. يمكنك تجربة كل ما سبق في العرض الحي لـ Inkfold، والبرنامج نفسه متاح على Charming Theme.

هل تنشر صحيفة أو مجلة على الإنترنت وتعاني من بطء الصفحات؟ لنتحدث — تبني ArtinTech Solution هذا النوع من برامج النشر وتضبط أداءه.

Share this article

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *