أفضل الممارسات

أفضل ممارسات JavaScript

لا تعمل واجهة برمجة تطبيقات JavaScript للخرائط إلا مع ECMAScript وW3C DOM قياسيين محددة. وهذا يعني أن تع��يل سلوك واجهة برمجة التطبيقات المضمنة الفئات والكائنات التي يوفرها المتصفح إلى جعل API JavaScript API غير وظيفي. قد تتعارض مكتبات أخرى أحيانًا مع JavaScript للخرائط واجهة برمجة التطبيقات عن طريق تغيير سلوك المتصفح بحيث لم يعد معيارًا بيئة ECMAScript. ولا تتوافق واجهة برمجة تطبيقات JavaScript للخرائط مع تلك المكتبات.

المكتبات المعروف عنها غير المتوافقة مع واجهة برمجة تطبيقات JavaScript للخرائط:

  • النموذج الأوّلي: يتجاوز Array.from() وElement.prototype.remove() بطرق غير عادية.
  • MooTools (الإصدارات القديمة): تتجاوز Array.from() بطريقة غير عادية.
  • DateJS (الإصدارات القديمة): يتجاوز Date.now() بطريقة غير عادية.

أحيانًا يمكن تعديل المكتبات غير المتوافقة لإزالة الإلغاء غير العادي.

أفضل ممارسات خدمة مقارنة الأسعار (CSS)

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

غالبًا ما تستخدم أطر عمل CSS ومكونات نمط JavaScript إعادة تعيين CSS أداة معادلة الصوت لمعالجة اختلافات العرض بين المتصفحات. أطر العمل غالبًا استخدِم العنصر box-sizing لتغيير هوامش صفحة الويب وحدودها. عناصر. وعادةً ما يتضمن ذلك تغيير سلوك المتصفح الافتراضي من استخدام content-box إلى border-box

ويمكن أن يؤدي هذا النوع من إعادة ضبط CSS إلى حدوث تعارض بين CSS وMaps JavaScript API. لأنّ واجهة برمجة التطبيقات لا تتيح إجراء تغييرات على ورقة أنماط وكيل المستخدم معلومات إضافية يمكن أن تحدث تعارضات في CSS إذا كان إطار العمل أو المكون يشير إلى فئات CSS أو عناصر DOM لواجهة برمجة تطبيقات JavaScript للخرائط.

لتجنُّب هذا التعارض، نقترح عليك عدّة اقتراحات.

الدقة

يتم تطبيق CSS المضمّنة والمرتبطة على خريطتك قبل أنماط "خرائط Google". في حال حذف يتم تحديد جميع أنماط صفحتك في CSS المضمنة أو المرتبطة، اتبع قواعد المواصفات لضمان تطبيق الأنماط الصحيحة على الخريطة.

يمكن استبدال عناصر CSS الشائعة، مثل img وbutton وa من خلال السمة أنماط صفحتك. وأحد السيناريوهات الأكثر شيوعًا هو الحالات التي يكون فيها max-width يتم تعيين سمة العنصر img على 100 بالمائة. ويمكن أن يؤدي ذلك إلى التشوّه أو مكونات خريطة مخفية، خاصةً إذا كنت تستخدم InfoWindow:

لحل هذه المشكلة، يمكنك تعديل العنصر img لخريطتك بحيث تم ضبط السمة max-width على none. على سبيل المثال:

#map img
{
    max-width : none;
}

أسماء الصفوف

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

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

إلغاء حجم المربع في CSS

توفر عمليات إلغاء حجم المربع في CSS حلاً بديلاً محتملاً لتصميم الخرائط النزاعات. يمكن أن يكون ذلك مفيدًا بشكل خاص إذا كنت تستخدم إطار عمل CSS أو مكوِّن تصميم JavaScript. على سبيل المثال، إذا تم ضبط box-sizing على border-box، يمكنك تجربة ما يلي:

  • يمكنك إنشاء إلغاء box-sizing يؤدي إلى ضبط العنصر <html> على border-box.
  • يمكنك استخدام box-sizing: inherit لجميع العناصر باستثناء الخريطة.
  • أنشِئ حاوية خريطة مخصّصة تُعيد ضبط العنصر box-sizing إلى initial.

مثال على لغة CSS:

html {
  box-sizing: border-box;
}

*,
*::before,
*::after {
  box-sizing: inherit;
}

.container-map {
  box-sizing: initial;
}