Hello our valued visitor, We present you the best web solutions and high quality graphic designs with a lot of features. just login to your account and enjoy ...

<none>

Hello our valued visitor, We present you the best web solutions and high quality graphic designs with a lot of features. just login to your account and enjoy ...

CAPTCHA
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.
11 + 5 =
Solve this simple math problem and enter the result. E.g. for 1+3, enter 4.

أخبار تكنلوجيا

رقم الخبر عنوان الخبر التفاصيل
56,097 ألمانيا تعيد قياس مساحتها بدقة أعلى .. ما الأسباب؟ من جبال الجنوب إلى بحر الشمال، تسعى ألمانيا إلى إعادة قياس مساحتها بدقة شديدة جدا. هذه البيانات ستساعد الباحثين في عدة مجالات، كالسيارات ذاتية القيادة وكذلك محاربة التغيرات المناخية. فكيف ستسير العملية؟
56,075 الكتابة لتجربة المستخدم UX Writing أساس التهيئة الفعالة Onboarding

تُعَد الكتابة لتجربة المستخدم UX Writing موضوعًا مهمًا وما يزال جديدًا حاليًا. وقد بدأت أعداد متزايدة من الشركات تقدّر قيمتها في تحسين كل من حركة مرور الموقع (كمية البيانات التي أرسلها أو استقبلها المستخدمون)، واستخدامه، والتحويلات (تحويل زوّار الموقع إلى مستخدمين دائمين). سنتعرف في هذا المقال على أهم النصائح والإرشادات التي يحتاجها أي مصمم للوصول إلى الكتابة الجيدة لتجربة المستخدِم، وكيفية تحقيق التهيئة الفعالة وسهلة الاستخدام.

يشير المصطلح أساسًا إلى كل الكلمات التي ستصادف المستخدم أثناء تصفحه لموقع معين، وتشرح الكتابة الفعالة لتجربة المستخدم آلية عمل الخدمة أو المنتج (الموقع أو التطبيق) وتوجّه المستخدم، وتملك أهميةً خاصةً في مجال التهيئة له Onboarding.

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

نصائح عامة ومهمة في الكتابة لتجربة المستخدم

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

الحفاظ على هوية ثابتة للعلامة التجارية

بالكتابة لتجربة المستخدم فإن البساطة والثبات أمران في غاية الأهمية، وكلما كانت التوجيهات والدعوات لاتخاذ إجراء Call To Actions أبسط، زاد احتمال استجابة المستخدم لها. ومن الأمور البديهية إلا أنها مهمة ما يأتي ذكره:

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

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

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

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

عناصر عملية التهيئة الفعالة

للتأكد من وصول رسائلك للمستخدم بوضوح وسلاسة، فمن الضروري أن تكون الواجهة بسيطةً وسهلة الاستخدام. وتُعَد العناصر الأربعة الآتية ضروريةً لهذه العملية:

تعليمات بسيطة خطوة بخطوة

المفتاح هو توجيه المستخدمين بتعليمات بسيطة خطوةً بخطوة خلال عملية التهيئة، فعند كتابتها يمكنك البدء بالأسئلة الآتية:

  • كيف وصل المستخدم إلى الشاشة الحالية، ولماذا؟
  • ما الخطوة التالية التي يفكّر باتّخاذها؟
  • ما الخطوة التالية التي ترغب بتوجيهه لاتّخاذها بصفتك صاحب المنتج؟
  • هل من صيغة واضحة لتحويل إجابات الأسئلة السابقة إلى دعوة لاتخاذ إجراء CTA ضمن الصفحة؟
إضافة شرح يوضح السبب للتفاعل المطلوب

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

الحل الفعال للمشاكل

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

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

وضوح الدعوات لاتخاذ إجراء CTAs

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

مثال: شكرًا لإدخال رمز الـ ID الخاص بك، بإمكانك الآن استئجار دراجة، للبدء اضغط الزر بالأسفل.

كيف تكون عملية التهيئة سهلة الاستخدام؟

في ما يلي مثال لعملية تهيئة في التعاملات المالية، حيث تتضمن إدخال المستخدم لبياناته، والتقاط صورة لبطاقته الشخصية.

المقدمة

وهي رسالة بسيطة واضحة، تشرح للمستخدم ماذا عليه أن يفعل بالضبط.

البيانات الشخصية

اطلب المعلومات المطلوبة فقط حتى تجعل العملية أسرع.

التوثيق بتسجيل فيديو

أعطِ توجيهات واضحة أثناء تسجيل المستخدم للفيديو، حول ما عليه فعله أو تجنبه.

نجاح التسجيل

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

توثيق الهوية الشخصية

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

التأكد من الهوية عبر قواعد البيانات المختلفة

ريثما تنتهي عملية التأكد من هوية المستخدم عبر كل قواعد البيانات ذات الصلة، أرِه التقدم بهذه العملية وحاول جعل مدة هذه الخطوة أقل ما يمكن.

النجاح

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

ختاما

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

ترجمة وبتصرّف للمقال UX Writing is the Key to Effective Onboarding لصاحبته Ewa Jozefkowicz.

12 صورة.docx

55,998 هذا ما قالته الشركة المسؤولة عن انقطاع خدمة الإنترنت في العالم

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

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

وقالت الشركة في تدوينة كتبها نيك روكويل، كبير مسؤولي الهندسة والبنية التحتية بالشركة: "كان هذا الانقطاع واسع النطاق وشديدا، ونأسف حقا لتأثيره على عملائنا وكل من يعتمد عليهم". وأضاف أنه كان يتعين توقع حدوث المشكلة.

وتشغل فاستلي مجموعة من الخوادم الموزعة في مواقع استراتيجية حول العالم لمساعدة العملاء على نقل المحتوى وتخزينه بالقرب من المستخدمين النهائيين بسرعة وأمان.

وأعطت تدوينة الشركة تسلسلا زمنيا للأحداث، ووعدت بفحص وشرح سبب الإخفاق في رصد الخلل في البرمجيات.

والثلاثاء، تعطل أيضا عمل الموقع الإلكتروني للحكومة البريطانية وتعذر الدخول إليه. وظهرت رسائل تشير إلى عطل على الموقع الرسمي للحكومة

وذكرت وكالة أسوشييتد برس أن مشكلة فنية لدى شركة فاستلي الأميركية لخدمات الحوسبة السحابية تسببت في عطل مواقع الإنترنت حول العالم.

وأقرت فاستلي، ومقرها سان فرانسيسكو، بوجود مشكلة قبل الساعة العاشرة بتوقيت غرينتش. وقالت في تحديثات متكررة على موقعها على الإنترنت إنها "تواصل التحقيق في الأزمة".

وتلقى الزوار الذين يحاولون الوصول إلى "سي إن إن" الأميركية رسالة مفادها "خطأ تصفح في فاستلي".

وقالت شركة (داون ديتيكتور)، التي تتعقب انقطاع الإنترنت، "التقارير تشير إلى انقطاع واسع النطاق لدى فاستلي، ما قد يؤثر على خدماتها".

وكشفت فاستلي أن معظم مناطق تغطيتها واجهت "تدهورا في الأداء" في وقت سابق.

55,997 كيف ترى قصص سناب شات دون متابعة الشخص أو إضافته

يمتلك تطبيق "سناب شات" قاعدة كبيرة من المستخدمين الذين يعملون على تصوير ونشر الملايين من القصص يومياً.

ولا يستطيع الشخص إضافة جميع مستخدمي "سناب شات" على قائمة متابعته، ولذلك فإن المنصة تقدم مجموعة من الطرق التي تسمح لك بمشاهدة القصص ومحتوى المستخدمين الذين لم تقم بإضافتهم.

وأهمية هذه الخاصية تكمن في اكتشاف المحتوى الجديد، حيث يمكنك أن تحصل على المعلومات من خارج دائرة معارفك.

ولكن لا تستطيع مشاهدة قصص "سناب شات" التي ينشرها مستخدمين لم تقم بإضافتهم إلا إذا كانت قصصاً "عامة" (أي متاحة للجميع)، ويعني هذا أنك لا تستطيع مشاهدة القصص الخاصة إلا إذا حصلت على الصلاحيات لذلك من قبل ناشريها.

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

"الاكتشاف" في "سناب شات"

يمكنك الوصول إلى قصص المستخدمين الآخرين والأمور المنتشرة عبر "سناب شات" من خلال خاصية "الاكتشاف" Discover .

وهي طريقة لعرض القصص الرائجة ومعرفة "التريند" الموجود على المنصة. ويمكنك اتباع الخطوات التالية حتى تصل إليها:

-بعد أن تفتح تطبيق "سناب شات" قم بتحريك الشاشة إلى جهة اليسار حتى تصل إلى قائمة "الاكتشاف".

-بعد ذلك قم بتحريك الشاشة إلى الأعلى حتى تصل إلى المزيد من القصص على المنصة.

-ستجد هنا جميع القصص المشهورة والجديدة من الشركات المختلفة وصانعي المحتوى المختلفين الموجودين على المنصة.

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

-لتعود إلى قائمة Discover قم بسحب الشاشة للأسفل، أما لتكتشف المزيد من القصص فعليك سحب الشاشة إلى جهة اليمين أو اليسار كما ترغب.

القصص المباشرة

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

وحتى تتمكن من الوصول إليها عليك إتباع الخطوات التالية:

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

-ستجد القصص المباشرة أسفل قصص أصدقائك. وتضع المنصة علامة "مباشر" فوق القصة التي تحدث مباشرةً.

-بعد ذلك تستطيع الضغط على القصة حتى تقوم بعرضها، ويمكنك التحكم في القصص هنا مثل باقي التطبيق.

55,996 كيف تسترجع صورا محذوفة في نظام ماك للحاسب الشخصي

يعتبر المصورين هم أكثر الفئات التي تتضرر من فقدان الصور، ولذلك فإنهم يحتاجون إلى طرق فعالة تساعدهم على استرجاع الصور المحذوفة.

ويتجه معظم المصورين إلى امتلاك أجهزة حواسب تعمل بنظام ماك، وهذا لأن النظام يوفر لهم تسهيلات كثيرة.

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

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

ولذلك إليكم أفضل طرق استعادة الصور في نظام ماك.

باستخدام تطبيق الصور الرسمي من آبل:

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

وتعتبر هذه الطريقة أحد أسهل الطرق وأسرعها لاستعادة الصور المحذوفة حديثاً، وتعمل الخاصية تلقائيًا في معظم الأجهزة.

عن طريق سلة المحذوفات:

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

عن طريق النسخ الاحتياطية:

ويقوم نظام ماك بأخذ نسخ احتياطية للنظام بشكل دوري دون تدخل منك، وذلك عبر تطبيق Time Machine المميز.
ولكن حتى تتمكن من الاستفادة من هذه الطريقة، فإن تطبيق Time Machine يجب أن يكون فعال وقد استخدمته مرةً واحدة على الأقل.
وحتى تتمكن من استرجاع الصور المحذوفة عبر النسخ الاحتياطية، فإنك يجب أن تتبع الخطوات التالية:
• التوجه إلى المجلد الذي كانت فيه الصور
• الضغط على علامة Time Machine الموجودة في شريط المهام في الأعلى.
• ومن القائمة التي ستظهر قم باختيار Enter Time Machine.

وعندما تظهر أمامك النسخ السابقة للمجلد الخاص بك، فإنك تستطيع استرجاع الصور من أي نسخة سابقة ترغب فيها. وذلك عن طريق الضغط على زر Restore الموجود بالأسفل.

الاعتماد على التطبيقات الخارجية للنظام:

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

55,945 منافسة البيدق والملك في تصميم واجهة المستخدم UI Design

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

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

ثم بدأ الشرح عن كل القطع، هذا بيدق ويتحرك هكذا، وتلك قلعة وتتحرك هكذا؛ أما الحصان فيتحرك إما بهذا الشكل أو ذاك. وبينما تحاول التركيز، يتحرك الفيل قطريًّا ويمكن للملك التحرك هكذا فقط. وهنا أفضل قطعة لديك هي الوزير، حيث إن حركته مزيج من حركة القلعة والفيل، هل نبدأ باللعب؟

تلك هي الطريقة الأكثر شيوعًا في شرح الشطرنج، وهي كافية لجعلك تكره ألعاب الرقع إلى الأبد، فأنت تريد اللعب لا سماع محاضرة اعتباطية عن اللعبة.

يتفق مع ذلك أحد لاعبي الشطرنج، واسمه Josh Waitzkin، وهو محترف في الشطرنج، كما أنه بطل العالم في رياضة Tai Chi Push Hands الشعبية، ورياضة Jiu Jitsu البرازيلية. حيث كان أول من يحمل لقب البطولة للحزام الأسود بعد حصول Marcelo Garcia عليه لخمس مرات على التوالي. ويعمل حاليًّا على تدريب الخبراء الماليين ليرتقوا في مهنهم من كونهم ضمن أفضل 1% إلى النخبة التي تشكل 0.1% بنفس المجال. أي أنه يملك مهارة احتراف الأشياء. والغريب في الأمر أنه حين يدرّس Josh الشطرنج فإن الرقعة تبدو بهذا الشكل:

ملك ضد ملك وبيدق

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

تلك طريقة Josh في التفكير: حين تجرد اللعبة وتبسّطها إلى جوهرها، فإن كل ما تتعلمه هو مبدأ عام.

قد يبدو المبدأ متعجرفًا إلا أنه منطقي. ففي رقعة لعب مرتبة بالكامل، قد تربك المبتدئ الكثير من المشتتات؛ بينما أي شيء يتعلمه اللاعب برقعة بسيطة مثل وضع الملك والبيدق هذا مهم وأساسي في الشطرنج عمومًا ومثال ذلك:

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

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

وهذا مثال لزر أساسي افتراضي استُخدم فيه خط Helvetica (وهو خط افتراضي) بحجم 16 بكسل (افتراضي جدًّا)، ووضع الخط عادي plain. على مستطيل مرسوم باللون الأزرق الافتراضي؛ بطول 40 بكسل، مع 20 بكسل مساحة إضافية بلا كتابة في كلا الطرفين.

يحتاج تصميم هذا الزر اتخاذ العديد من القرارات، ولتوضيح المبدأ اعتمدنا القيم الافتراضية هنا للتهرب من اتخاذ تلك القرارات. نبدأ الآن تصميم الزر بتحديد خصائصه القابلة للتعديل، وهي:

  • الخط ونمط الكتابة.
  • اللون.
  • درجة انحناء الزوايا.
  • الحواف.
  • الظلال.

هناك المزيد من الخصائص لكن لنبدأ بتلك.

الكتابة

تغيير الخط أمر سهل كبداية

يمكنك رؤية تفاصيل الخط بتكبير الصورة. فقد غيرنا الخط من Helvetica إلى Moon المتوفر للاستخدام الشخصي على موقع Behance. وهو خط ناعم ومدور على عكس خط Helvetica الذي يوحي بأنه مربع أو على الأقل لا يوحي بنفس الدرجة من اللطف. لكن تبدو الزوايا الحادة للمستطيل الأزرق غير متناسقة مع الخط ذو الطابع المستدير. لذا فلنعطِ زوايا المستطيل بعض الاستدارة.

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

المفهوم بسيط وليس معقدًا مثل دراسة علم الصواريخ، إذ يمكننا العمل مع خط شائع آخر، مثل خط DIN.

يُعَد خط DIN بحوافه المربعة خطًا أنيقًا وعمليًا، ولاسيّما هذه النسخة منه واسمها DIN 2014 متوفرة في typekit بسعر مقبول.، وهو مثال لخط ذو شكل مربع لكن سهل القراءة، بحيث يحمل بعض الجمود دون تكلف وبأسلوب عملي، كما انه الخط الرسمي للحكومة الألمانية، وهو ملائم لذلك. فلنطبق فرضيتنا السابقة على خط DIN.

كيف يبدو خط DIN مع الزوايا المدورة للمستطيل؟ للحكم على ذلك نوازنها مع الزوايا المربعة.

تبدو الزوايا المربعة أفضل وأكثر تناسقًا. والآن ننتقي الأسهل بالقراءة بعد موازنة الأزرار باستخدام كلا الخطين. وبذلك يرجح خط Moon، بحيث توحي حروف DIN بأنها قريبة من بعضها عند الموازنة. نجرب زيادة المسافة بين حروف DIN.

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

تعلمنا حتى الآن أمرين يمكن تعميمهما من تصميم الأزرار إلى كل عناصر واجهة المستخدم الأخرى وهما:

  • تظهر الخطوط المدورة بشكل أفضل مع الأشكال المدورة؛ وبالمثل، فالخطوط المربعة تناسب الأشكال المربعة.
  • عند كتابة كلمات انجليزية بحروف كبيرة لكامل النص باستخدام خطوط صممت لتلائم حالة الجملة.
اللون

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

كيف نضيف إليه بعض المرح؟ ككل مشاكل تعديل اللون، يساعدنا التفكير في نظام HSB للألوان الذي يرمز إلى الصبغة Hue، والإشباع Saturation، والتألق Brightness.

وفق HSB، يتحول اللون إلى ثلاث أرقام وكأننا صنعنا له مقابض بتحريكها نتحكم به.

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

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

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

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

لا يؤمن النص الأبيض على زر الأزرق سماوي تباينًا كافيًا، مما يخالف شرطي AAA وAA من WCAG، ووفقًا لـ Stark وهو أداة لاختبار جودة التباين فإنّ الزر لا يوافق أي من التوصيات. (يمكنك الاطلاع علىLea Verou's Contrast Ratio لأداة شبيهة تعمل من المتصفح)

كيف نجعل النص الأبيض في الزر الأزرق السماوي أوضح للنظر؟ نفكر مجددًا في قيم HSB للون الزر.

  • التألق Brightness: نخفضه ليصبح أوضح.

  • الإشباع Saturation: نزيده والسبب أننا نحاول تحقيق التباين مع اللون الأبيض ذو الإشباع الصفري، لذا فقيم إشباع أعلى للأزرق ستحقق تباينًا أعلى.

  • الصبغة Hue: سنتركها على حالها للحفاظ على اللون الأزرق المائي، لكن إن بقي التباين منخفضًا، فيمكننا تخفيف لمعان الأزرق المائي بسحب الصبغة قليلًا للأعلى نحو الأزرق. أصبح لدينا الآن زرّ أزرق مخضر وهو أفضل.

هنا لا بأس من فقدان معيار AAA؛ حيث أن WCAG طورت المعايير مثل وصف نسبي لمقدار التباين وليست معايير مطلقة.

على سبيل المثال لتتمكن نسبة مئوية معينة من الناس أن تقرأ النص، ويبقى المعيار الذهبي المطلق دومًا هو الاختبار مع أشخاص حقيقيين. من الأفضل تحقيق معيار AAA، لكن في بعض الأحيان يكون معيار AA كافيًا بالنسبة للألوان التي عليك العمل بها.

بعض الأفكار التي طبقناها لجعل زر أزرق عادي بنص أبيض أكثر مرحًا وأسهل قراءةً، هي في الواقع دروس أعمق عن الألوان ويمكن تطبيقها بكل التصاميم تقريبًا:

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

بالعودة إلى الزر الذي صممناه بخط DIN. ما اللون المناسب لحوافه الجامدة وشكله المربع؟ يبدو الأسود مناسبًا.

بمزيد من العصف الذهني، قد يفي الأحمر الصارخ بالغرض.

أو حتى إحدى درجات البناء من البرتقالي.

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

هل تريد مطابقة لون على خط؟ هذا درس آخر ينطبق على جميع العلامات التجارية، ومن الأفضل البدء بالصفات، والعواطف، ومطابقة كل شيء معها. وهكذا نكون قد تعلمنا عمليًا أمرًا أساسيًا في عملية تصميم العلامات التجارية.

الظلال

لنواصل العمل وليكن مع الظلال هذه المرة.

هناك عدة توجهات للتعامل مع الظلال، لكن التصنيفين الأساسيين للظلال هما:

  • الظلال الواقعية.
  • الظلال ذات طابع الرسوم المتحركة.

وهنا مثال لكل منهما:

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

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

للزر الأزرق المخضر ظل أسود بعتامة 30%، ممتد للأسفل بمقدار 1 بيكسل وفق المحور الطولي؛ ثم 2 بيكسل من التمويه أي (o 1px 2 px)؛ وللزر الأسود ظل أسود بعتامة 50%، ممتد للأسفل بمقدار 2 بيكسل وفق المحور الطولي؛ ثم 4 بيكسل من التمويه أي (o 2px 4px). يبدو الظل الأغمق سيئًا مع الزر الأزرق المخضر.

لماذا؟ كإجابة العديد من الأسئلة عن الألوان فإن ذلك يعتمد على اللمعان.

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

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

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

الحواف

فلنضف حافةً للزر الأزرق المخضر 1.

طريقة إضافة هذه الحافة هي طريقة فكر بها العديد من المصممين، فبجعل الحواف سوداء مع شفافية، فإنها ستفي بالغرض مهما كان لون الخلفية، وبهذه الحالة استُخدِمت حافة سوداء بعرض بكسل واحد وبعتامة 20%.

مع ذلك إن قمت بتبديل لون الخلفية إلى أزرق قياسي، والذي هو بطبيعة الحال أقل لمعانًا من الأزرق المخضر فإن هذه الحافة لا تعود واضحة.

لتظهر الحافة على اللون الأزرق بنفس وضوحها على الأزرق المخضر يمكن زيادة عتامة لونها الأسود إلى نحو 50%.

هذه قاعدة قابلة للتعميم: إذا أردت وضع طبقة سوداء على لون آخر، فيجب أن يكون الأسود أحلك حتى يظهر بنفس الدرجة على خلفيات بألوان أقل لمعانًا. ويمكن تطبيق ذات الفكرة مع الظلال.

لكل من هذه الأزرار نفس الظل (o 2px 3px) لكن الاختلاف بدرجات العتامة. لظل الزرين العلويين درجة عتامة 20%، ولظل الزرين السفليين درجة عتامة 40%. فبينما يبدو الزر العلوي الأيسر جيدًا، يكاد نفس الظل ألا يكون ملحوظًا على خلفية أغمق مثل الزر العلوي الأيمن، وظل الزر السفلي الأيسر الذي يبدو داكنًا جدًا على الخلفية البيضاء، فإنه جيد مع الخلفية الغامقة كما في الزر السفلي الأيمن.

الأيقونات

فلنواصل العمل هذه المرة بالحديث عن الأيقونات.

هذه أيقونة التحميل لموقع Font Awesome.

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

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

  • استخدام سماكة لخطوط الرمز مكافئة لسماكة حروف النص.
  • جعل استدارة زوايا الرمز موافقة لاستدارة الزوايا في حروف الخط؛ زوايا مربعة لخط DIN، وزوايا مستديرة لخط Moon.
  • استخدام شكل أبسط للرمز لتتسنى رؤيته بوضوح.

ويبدو كالآتي بتطبيقها:

يمكن تشبيه إنشاء رمز كهذا بأنك ترسمه بنفس القلم الذي كُتب به الخط. فيظهر الرمز وكأنه قابل لأن يحل مكان أحد حروف الخط المستخدَم في الزر، لن تظهر كل الأيقونات بهذا الشكل، لكن لرمز ظهر كأنه جزء من الخط فتلك قاعدة رائعة.

الخلاصة

تلك البداية فقط، فهناك أنماط مختلفة للأزرار.

لكنها بداية جيدة، حيث استطعنا بتصميم زرين تغطية العديد من النقاط الجوهرية التي تلزم مصمم واجهة المستخدم يوميًا.

  • الإضاءة والظلال.
  • اللون.
  • أسلوب الطباعة (الكتابة).
  • التناسق.
  • العلامة التجارية.

وتلك الدروس أساسية في تصميم واجهة المستخدم ككل، لكن ليس لأحد عناصرها فقط. ويمكن تلخيصها بالآتي:

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

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

ترجمة وبتصرّف للمقال The King vs. Pawn Game of UI Design لصاحبه Erik Kennedy.

55,912 تطبيق مشفر يخدع شبكات الجريمة المنظمة حول العالم

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

وتضمنت عملية "درع طروادة" مداهمات للشرطة في 16 دولة، أسفرت عن إلقاء القبض على أكثر من 800 مشتبه به وضبط أكثر من 32 طناً من المخدرات (من الكوكايين والقنب والأمفيتامينات والميثامفيتامين) إلى جانب 250 قطعة سلاح ناري و55 سيارة فاخرة وأكثر من 148 مليون دولار نقداً وعملات مشفرة.

وقال كالفين شيفرز، مساعد مدير شعبة التحقيقات الجنائية في مكتب التحقيقات الفيدرالي الأميركي في مؤتمر صحافي في لاهاي: "عملية درع طروادة تعد مثالاً ساطعاً لما يمكن تحقيقه عندما يعمل شركاء إنفاذ القانون الدوليين من جميع أنحاء العالم معاً لتطوير أحدث أدوات التحقيق لاكتشاف المنظمات الإجرامية عبر الحدود وتعطيلها وتفكيكها".

من جهتها، قالت قائدة الشرطة الفيدرالية الأسترالية جينيفر هيرست إنها كانت "لحظة فاصلة في تاريخ إنفاذ القانون العالمي".

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

وبدأت العملية بعد أن تمكنت الشرطة العالمية في العامين الماضيين من تعطيل شبكتين رئيسيتين أخريين للهواتف المشفرة يستخدمهما المجرمون، الأولى تعرف باسم "إنكروتشات" والثانية باسم "سكايغلوبال".

وقالت الشرطة النيوزيلاندية إن "إغلاق منصتي الاتصال المشفرتين هاتين أوجد فراغاً كبيراً في سوق الاتصالات المشفرة".

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

وقالت الشرطة الأسترالية إن الأجهزة التي افترض المجرمون أنها مشفرة سُلمت إلى عملاء داخل المافيا وعصابات الجريمة الآسيوية وعصابات المخدرات وعصابات الدراجات النارية الخارجة عن القانون كجزء من المكيدة التي دبرها مكتب التحقيقات الفيدرالي.

وتمكن الشرطيون من قراءة رسائل زعماء المنظمات الإجرامية العالمية في نحو 100 دولة أثناء تخطيطهم لصفقات مخدرات ونقل أسلحة وعمليات اغتيال بفضل تطبيق "آنوم" الذي كان يستخدمه مجرمون في جميع أنحاء العالم للتواصل بطريقة مشفّرة.

وبينت وثائق قضائية تم الكشف عنها واستشهدت بها قناة "فايس نيوز" الإعلامية الأميركية أن مكتب التحقيقات الفيدرالي عمل مع عملاء سريين على تطوير وتوزيع أجهزة "آنوم" من خلال شبكة "فانتوم سيكيور" التي كان يستخدمها العملاء المجرمون وإرسال 50 منها - معظمها إلى أستراليا - لتكون بمثابة أدوات "اختبار تجريبي".

ولم يكن في هذه الأجهزة أي بريد إلكتروني أو خدمة اتصال أو تحديد الموقع العالمي، وكان يمكن من خلالها فقط إرسال رسائل إلى الهواتف الأخرى التي تحتوي على تطبيق "آنوم".

كما لم يكن من الممكن شراؤها إلا من السوق السوداء مقابل نحو 2000 دولار، وتطلبت الحصول على رمز من مستخدم سابق للدخول إليها.

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

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

55,911 تحميل الموارد الخارجية في صفحات الويب وتتبع حالتها عبر جافاسكربت

يمكّننا المتصفّح من تتبّع تحميل الموارد الخارجيّة، مثل السكربتات والعناصر iframes والصور وما إلى ذلك.

هناك حدثان لهذا الغرض:

  • onload -- نجاح التحميل
  • onerror -- حصل خطأ ما
تحميل سكربت

لنفترض أنّنا نودّ تحميل سكربت طرف ثالث واستدعاء دالّة موجودة فيه. يمكننا تحميله ديناميكيّا هكذا:

let script = document.createElement('script'); script.src = "my.js"; document.head.append(script);

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

ملاحظة:

بالنسبة لسكربتاتنا الخاصّة يمكننا استخدام وحدات جافاسكربت لذلك، لكنّها ليست شائعة التبنّي من مكتبات الطرف الثالث.

script.onload

المساعد الرئيسيّ هو الحدث load. ويقع عند الانتهاء من تحميل السكربت وتنفيذه.

على سبيل المثال:

let script = document.createElement('script'); // يمكن أن يحمّل أيّ سكربت، من أيّ نطاق script.src = "https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.3.0/lodash.js" document.head.append(script); script.onload = function() { // "_" ينشئ السكربت المتغيّر alert( _.VERSION ); // shows library version };

See the Pen JS-p2-onload-onerror -ex1 by Hsoub (@Hsoub) on CodePen.

بداخل onload، يمكننا إذًا استخدام متغيّرات السكربت وتنفيذ الدوالّ وما إلى ذلك. لكن ماذا لو فشل التحميل؟ على سبيل المثال، إذا كان لا وجود لهذا السكربت (الخطأ 404) أو الخادم معطّل (غير متاح).

script.onerror

يمكن تتبّع الأخطاء التي تحصل خلال تحميل السكربت في حدث error.

على سبيل المثال، لنقم بطلب سكربت غير موجود:

let script = document.createElement('script'); script.src = "https://example.com/404.js"; // لا وجود لهذا السكربت document.head.append(script); script.onerror = function() { alert("Error loading " + this.src); // https://example.com/404.js خطأ في تحميل };

See the Pen JS-p2-onload-onerror -ex2 by Hsoub (@Hsoub) on CodePen.

يُرجى التنبّه إلى أنّه لا يمكننا الحصول على تفاصيل خطأ HTTP هنا. لا نعلم إن كان خطأ 400 أو 500 أو شيئا آخر. نعلم فقط أنّ التحميل قد فشل.

تنبيه:

لا تتبّع الأحداثُ onload/onerror سوى التحميل نفسه.

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

الموارد الأخرى

تعمل الأحداث load وerror مع الموارد الأخرى كذلك، وتعمل أساسا مع أيّ مورد له src خارجيّ. مثلا:

let img = document.createElement('img'); img.src = "https://js.cx/clipart/train.gif"; // (*) img.onload = function() { alert(`Image loaded, size ${img.width}x${img.height}`); }; img.onerror = function() { alert("Error occurred while loading image"); };

See the Pen JS-p2-onload-onerror -ex3 by Hsoub (@Hsoub) on CodePen.

لكنّ هناك بعض الملاحظات:

  • تبدأ معظم الموارد في التحميل عندما تُضاف إلى المستند. لكنّ <img> تُعدّ استثناءً، حيث تبدأ في التحميل عندما تحصل على src (*).
  • بالنسبة لـ <iframe>، يقع الحدث iframe.onload عندما ينتهي تحميل iframe، سواء بنجاح التحميل أو في حالة خطأ.

ذلك لأسباب تاريخيّة.

سياسة تعدّد المصادر (Crossorigin policy)

هناك قاعدة تقول: لا يمكن لسكربتات موقع ما الوصول إلى محتويات موقع آخر. فمثلا، لا يستطيع سكربت موجود في https://facebook.com قراءة صندوق بريد المستخدم في https://gmail.com.

أو بشكل أدقّ، لا يمكن لأحد المصادر (الثلاثيّة
domain/port/protocol (البروتوكول/المنفذ/النطاق)) الوصول إلى محتوى مصدر آخر. فحتى لو كان لدينا نطاق فرعيّ أو اختلف المنفذ فقط، فستُعدّ هذه مصادر مختلفة ولا يكون لديها مدخل إلى بعضها البعض.

تشمل هذه القاعدة أيضا الموارد التي هي من نطاقات أخرى.

إذا كنا نستخدم سكربتا من نطاق آخر، وكان فيه خطأ ما، فلا يمكننا الحصول على تفاصيل ذلك الخطأ.

على سبيل المثال، لنأخذ السكربت (الفاسد) error.js المكوّن من مجرّد استدعاء لدالّة:

// ? error.js noSuchFunction();

ثمّ لنحمّله من نفس الموقع الموجود فيه:

<script> window.onerror = function(message, url, line, col, errorObj) { alert(`${message}\n${url}, ${line}:${col}`); }; </script> <script src="/article/onload-onerror/crossorigin/error.js"></script>

See the Pen JS-p2-onload-onerror -ex4 by Hsoub (@Hsoub) on CodePen.

يمكننا رؤية تقرير جيّد للخطأ، هكذا:

Uncaught ReferenceError: noSuchFunction is not defined https://javascript.info/article/onload-onerror/crossorigin/error.js, 1:1

لنحمّل الآن نفس السكربت من نطاق آخر:

<script> window.onerror = function(message, url, line, col, errorObj) { alert(`${message}\n${url}, ${line}:${col}`); }; </script> <script src="https://cors.javascript.info/article/onload-onerror/crossorigin/error.js"></script>

See the Pen JS-p2-onload-onerror -ex5 by Hsoub (@Hsoub) on CodePen.

التقرير الآن مختلف:

Script error. , 0:0

قد تختلف التفاصيل حسب المتصفّح، لكنّ الفكرة نفسها: أيّة معلومات حول الأمور الداخليّة للسكربت، بما في ذلك مكدس آثار الخطأ (error stack traces)، تكون مخفيّة. يرجع ذلك بالتحديد إلى كونها من نطاق آخر.

لماذا قد نحتاج إلى تفاصيل الخطأ؟

توجد هناك العديد من الخدمات (يمكن أن نبني واحدة لنا) التي تعمل على الانصات للأخطاء العموميّة بواسطة window.onerror، وحفظها وتوفير واجهة للوصول إليها وتحليلها. هذا جيّد، إذ يمكننا رؤية الأخطاء الحقيقيّة، التي يتسبّب فيها مستخدمونا. لكن إذا كان السكربت من مصدر آخر، فلا تكون هناك الكثير من المعلومات حول الأخطاء فيها، كما شاهدنا للتوّ.

تُفرض نفس سياسة تعدّد المصادر (CORS) على أنواع الموارد الأخرى كذلك. لإتاحة الوصول متعدّد المصادر، يجب أن يكون للوسم <script> السمة crossorigin، ويجب كذلك أن يقدّم الخادم ترويسات (Headers) خاصّة. هناك ثلاثة مستويات للوصول متعدّد المصادر:

  1. لا وجود للسمة crossorigin -- الوصول ممنوع.
  2. crossorigin="anonymous"‎ -- الوصول متاح إذا أجاب الخادم بالترويسة Access-Control-Allow-Origin مع * أو مع مصدرنا. لا يرسل المتصفّح معلومات الترخيص (authorization) وملفّات الارتباط (cookies) إلى الخادم البعيد.
  3. crossorigin="use-credentials"‎ -- الوصول متاح إذا أجاب الخادم بالترويسة Access-Control-Allow-Origin مع مصدرنا وAccess-Control-Allow-Credentials: true. يرسل المتصفّح معلومات الترخيص وملفّات الارتباط إلى الخادم البعيد.

في حالتنا هذه، لم يكن لدينا أيّ وسم crossorigin. لذا فإنّ الوصول متعدّد المصادر قد مُنع. لنضفه الآن.

يمكننا الاختيار بين "anonymous" (لا إرسال لملفات الارتباط، يُحتاج إلى ترويسة واحدة من جانب الخادم) و"use-credentials" (يرسل ملفّات الارتباط أيضا، يُحتاج إلى ترويستين من جانب الخادم).

إذا نكن نهتمّ بملفّات الارتباط، فإنّ "anonymous" هي الخيار:

<script> window.onerror = function(message, url, line, col, errorObj) { alert(`${message}\n${url}, ${line}:${col}`); }; </script> <script crossorigin="anonymous" src="https://cors.javascript.info/article/onload-onerror/crossorigin/error.js"></script>

See the Pen JS-p2-onload-onerror -ex6 by Hsoub (@Hsoub) on CodePen.

حاليّا، على افتراض أنّ الخادم يوفّر ترويسة Access-Control-Allow-Origin، كلّ شيء على ما يرام. لدينا تقرير الخطأ الكامل.

الملخّص

توفّر الصور <img> والتنسيقات الخارجيّة والسكربتات والموارد الأخرى الأحداث load وerror لتتبّع تحميلها:

  • يقع load عند نجاح التحميل.
  • يقع error عند فشل التحميل.

الاستثناء الوحيد هو <iframe>: لأسباب تاريخيّة يحدث load على الدوام، عند أيّ انتهاء للتحميل، حتى لو لم توجد الصفحة.

يعمل الحدث readystatechange أيضا مع الموارد، لكن يندر استخدامه، لأنّ الأحداث load/error أبسط.

التمارين حمّل الصور بواسطة ردود النداء (callbacks)

الأهميّة: 4

عادة، تُحمّل الصور عند إنشائها. فعندما نضيف <img> إلى الصفحة، لا يرى المستخدم الصورة فورا. يحتاج المتصفّح إلى تحميلها أوّلا.

لإظهار الصورة فورا، يمكننا إنشاؤها "مسبقا"، هكذا:

let img = document.createElement('img'); img.src = 'my.jpg';

يبدأ المتصفّح تحميل الصورة ويحفظها في الذاكرة المؤقّتة. لاحقا، عندما تحضر نفس الصورة في المستند (مهما كانت الطريقة)، فإنّها تظهر فورا.

أنشئ الدالّة preloadImages(sources, callback)‎ التي تحمّل جميع الصور التي في المصفوفة sources، وعندما تجهز، تنفّذ callback.

على سبيل المثال، سيظهر هذا التنبيه alert بعدما تُحمّل الصور:

function loaded() { alert("Images loaded") } preloadImages(["1.jpg", "2.jpg", "3.jpg"], loaded);

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

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

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

أنجز الحلّ في البيئة التجريبية

الحلّ

الخوارزميّة:

  1. اجعل img لكلّ مصدر.
  2. أضف onload/onerror لكلّ صورة.
  3. زد في العدّاد كلّما اشتغل onload أوonerror.
  4. عندما تصير قيمة العدّاد تساوي عدد المصادر، نكون قد انتهينا: callback()‎.

افتح الحلّ في البيئة التجريبية

ترجمة -وبتصرف- للمقال Resource loading: onload and onerror من سلسلة Browser: Document, Events, Interfaces لصاحبها Ilya Kantor

55,899 ألمانيا تحذر من سباق التسلح بالذكاء الاصطناعي دخل العالم فعليا مرحلة جديدة من السباق على التسلح والحروب حيث بات للذكاء الاصطناعي دور كبير خاصة وأنه يجعل الجيوش أكثر فعالية وبالطبع أكثر ذكاء. لكن إذا لم يتم وضع قواعد، فإن هذا السباق قد يخرج عن السيطرة ويهدد العالم.
55,898 بعد عطل فني.. عودة تدريجية لمواقع إعلامية وحكومية عالمية

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

وظهرت رسائل تشير إلى عطل في الصفحة على المواقع. وقالت مراسلة "العربية" إن تطبيق بلومبيرغ من بين مواقع الإنترنت التي تعطلت.

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

وذكرت وكالة أسوشييتد برس أن مشكلة فنية لدى شركة "فاستلي" الأميركية لخدمات الحوسبة السحابية تسببت في عطل مواقع الإنترنت حول العالم.

واضافت الوكالة أن عدة مواقع إلكترونية عالمية تعطلت اليوم الثلاثاء بعد انقطاع واسع النطاق على ما يبدو لدى شركة خدمات الحوسبة السحابية (فاستلي).
وبات لا يمكن الوصول إلى العشرات من المواقع التي يتصفحها اعداد كبيرة للغاية؛ ومن بينها تويتش.

وأقرت فاستلي، ومقرها سان فرانسيسكو، بوجود مشكلة قبل الساعة العاشرة بتوقيت غرينتش.وقالت في تحديثات متكررة على موقعها على الإنترنت إنها "تواصل التحقيق في الأزمة ".

وتلقى الزوار الذين يحاولون الوصول إلى سي إن إن رسالة مفادها "خطأ تصفح في فاستلي".
وقالت شركة (داون ديتيكتور)، التي تتعقب انقطاع الإنترنت، "التقارير تشير إلى أنه قد يكون هناك انقطاع واسع النطاق لدى فاستلي، ما قد يؤثر على خدماتها."

الصفحات

أنت هنا