كيفية تقدير وقت القراءة بدقة أكبر لمقالات Medium في JavaScript

المقدمة

تقدير وقت القراءة هو تقدير الوقت الذي يستغرقه القارئ في قراءة مقال. لقد كان جزءًا من الميزات الأساسية لـ Medium منذ إطلاقه في عام 2013.

كما هو موضح في نيويوركر :

كلما عرفنا أكثر عن شيء ما - بما في ذلك بالضبط مقدار الوقت الذي سيستهلكه - زادت فرصة التزامنا به.

إن معرفة المدة التي ستستغرقها قراءة المقالة مسبقًا يساعد في إدارة الوقت بشكل أفضل من خلال السماح لنا بالتخطيط بشكل أكبر للمستقبل.

لماذا يجب علي استخدام نص جديد؟

نعم ، هناك العديد من المكتبات مفتوحة المصدر المتاحة على npmلكنها تحتوي على العديد من العيوب.

قبل ذلك ، دعونا نلقي نظرة على هاتين المقالتين على موقع Medium.

  • قراءة الوقت - دعم متوسط
  • اقرأ الوقت وأنت

تحتوي المادتان أعلاه على الميزات الرئيسية التالية

  • متوسط ​​وقت القراءة (الإنجليزية) - 265 كلمة في الدقيقة
  • متوسط ​​وقت القراءة (الصينية واليابانية والكورية) - 500 حرف / دقيقة
  • وقت قراءة الصورة - 12 ثانية للصورة الأولى و 11 ثانية للصورة الثانية وناقصًا ثانية إضافية لكل صورة لاحقة. تم عد الصور الأخرى في 3 ثوان.

لا تأخذ معظم المكتبات في الاعتبار الميزات المذكورة أعلاه تمامًا. يستخدمون سلاسل HTML كما هي دون حذف أسماء العلامات التي تزيد من انحراف التقدير عن القيمة الأصلية.

الشفرة

يمكن تقسيم الكود إلى ثلاثة أجزاء:

  • الثوابت
  • خدمة
  • الأساسية

الثوابت

يمكن استخدام الثوابت كإعدادات افتراضية للوظيفة الرئيسية. لعلامة الصورة استخدامها الخاص الذي سيتم تحديده لاحقًا.

وظائف المنفعة

  1. قطاع WhiteSpace

إنها وظيفة أداة مساعدة بسيطة لإزالة كل المسافات البادئة والزائدة من السلسلة المتوفرة.

2. وقت قراءة الصورة

يوزع السلسلة ، ويبحث عن أي علامات لصور HTML بناءً على القيم الافتراضية المتوفرة في الثوابت ويعيد العدد.

إذا كان عدد الصور أكبر من 10 ، فإننا نحسب وقت قراءة الصورة لأول 10 صور في تناقص التقدم الحسابي بدءًا من 12 ثانية / customReadTimeالمقدمة من المستخدم باستخدام الصيغة البسيطة n * (a+b) / 2 و 3 ثوانٍ للصور المتبقية.

3. قطاع العلامات

بعد ذلك ، نتحقق من وجود أي علامات HTML (كلاهما) في السلسلة وإزالتها لاستخراج الكلمات منها فقط.

4. كلمات قراءة الوقت

تحسب وظيفة الأداة المساعدة هذه عدد الكلمات والأحرف الصينية / الكورية واليابانية باستخدام نطاق أحرف Unicode المختلف .

يحسب الوقت بتقسيمه على الثوابت المحددة أعلاه.

5. أنسنة الوقت

استنادًا إلى المسافة الزمنية في الكلمات ، يمكننا حساب وإرجاع المدة المتوافقة مع البشر للوقت المستغرق في القراءة.

الأساسية

تقوم الوظيفة الرئيسية فقط بتوحيد جميع طرق المنفعة بالترتيب الصحيح.

ما مدى دقة هذا السيناريو؟

إجراء الاختبارات على سلسلة HTML (من مفتش Chrome) قبل قسم هذه المقالة.

تعطي الاختبارات والصفحات التقدير الصحيح لإجمالي الكلمات من HTML الذي تم تحليله وعدد الصور.

الروابط

لقد قمت بدمج الكود الكامل على GitHub. وهو متاح أيضًا كتقدير وقت قراءة الحزمة npm.

يمكن العثور على المزيد من الأشياء الرائعة في ملفي الشخصي على StackOverflow و GitHub .

تابعوني على LinkedIn و Medium و Twitter لمزيد من المقالات الجديدة المحدثة.

تصفيق واحد ، صفقتان ، ثلاث تصفيقات ، أربعون؟

نُشر في الأصل على blog.pritishvaidya.com في 30 يناير 2019.