لماذا يفشل كود جافا سكريبت على متصفح كروم على أندرويد؟ الحل بنقرة واحدة!

كنت تعتقد أن الموقع كان جيدًا وأن كود JS كان مستقرًا مثل الكلب العجوز، ولكن بمجرد تغيير إصدار المتصفح المحمول، "أصبحت الصفحة في إضراب"؟

الأمر الأكثر إثارة للدهشة هو أن الكمبيوتر يعمل بشكل طبيعي،اندروزلكن الهاتف يتجاهلك تماما.

هذه ليست مزحة، إنها مشكلة في المتصفح تحدث بهدوء.

جذر المشكلة: ليس أنك كتبتها خطأ، بل أن الزمن تخلى عنك.

لماذا يفشل كود جافا سكريبت على متصفح كروم على أندرويد؟ الحل بنقرة واحدة!

في الواقع، عندما يلاحظ معظم المطورين هذه الظاهرة، يكون رد فعلهم الأول: هل هناك خلل في بناء جملة جافا سكريبت؟ هل DOM غير مُحمّل؟ أم أن الأذونات مُحظورة؟

النتيجة؟ لا شيء منها. اتضح أن السبب الحقيقي هو تلك الكتابة القديمة:

<script language="javascript">

كان هذا السطر من التعليمات البرمجية شائعًا منذ 20 عامًا无限، والذي يمكن رؤيته في جميع الدروس التعليمية.

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

ولأسباب تتعلق بالتوافق، لا يزال Chrome على سطح المكتب "يتولى الأمر مؤقتًا"؛ ولكن Chrome على الأجهزة المحمولة التي تعمل بنظام Android هو "الطليعة" وقام على الفور بتمكين استراتيجية التنظيف هذه.

فظهر:الكمبيوتر يعمل بشكل جيد، لكن الهاتف المحمول لا يعملالمشكلة.

لماذا اتخذ أندرويد الإجراء الأول؟

قد يتساءل البعض: لماذا تم إطلاق Android Chrome أولاً؟

إنه أمر بسيط للغاية، لأن وتيرة ترقية الجهاز المحمول أسرع، وتقوم Google بإرسال المعلومات بسرعة مثل إرسال الأظرف الحمراء.

2023 أغسطس 10تم إطلاق إصدار Chrome 119 لنظام Android بالكامل عبر Google Play.

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

لذا، إذا كنت لا تزال تستخدم عبارة "language=javascript"على هواتف أندرويد، فإن ذلك يعادل كتابة كود شفاف، يتجاهله المتصفح بشكل مباشر.

الحل: قم بإنجازه في ثلاث ثوانٍ

لحسن الحظ، حل هذه المشكلة بسيط للغاية. استبدل هذا السطر:

<script>

أو بشكل رسمي أكثر:

<script type="text/javascript">

لا يستغرق تعديله سوى بضع ثوانٍ، وسيقوم Android Chrome بتنفيذه على الفور.

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

  • الكمبيوتر: Ctrl + F5
  • الهاتف: الإعدادات → الخصوصية → مسح ذاكرة التخزين المؤقت

بمجرد التحديث، يتم تنشيط الكود في ثوانٍ وتبدأ الصفحة في التشغيل مرة أخرى.

هذا في الواقع "تصفية"

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

ما يجب على مصنعي المتصفحات فعله واضح للغاية: تنظيف قواعد اللغة القديمة تدريجيًا وإجبار المطورين على التحديث.

إنه مثل الطريق السريع: كان يُسمح سابقًا للدراجات ثلاثية العجلات والجرارات بالسير جنبًا إلى جنب، ولكن الآن لأسباب تتعلق بالسلامة يجب قيادتها للخارج. language="javascript" لا ينبغي أن يكون هذا الجرار على المسار السريع.

ما الذي ينبغي على المطورين الانتباه إليه؟

تعتبر هذه الحادثة بمثابة تذكير واقعي للغاية بالنسبة لنا:

  1. معايير الترميز مهمة حقًا قد يتوقف الكود الذي تعتقد أنه "يعمل فقط" عن العمل في إصدار معين.

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

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

النتيجة: وراء كل سطر من التعليمات البرمجية يكمن التطور التكنولوجي

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

إن إزالة السمات القديمة وإجبار المطورين على اتباع المعايير هو تكرار للحضارة التكنولوجية.

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

ولذلك، عندما نقوم بإصلاح هذه الحفرة الصغيرة، فإننا في الواقع نشارك في "حركة تنظيف الحضارة التكنولوجية".

في السنوات القليلة القادمة، سوف يكون هناك المزيد والمزيد من المزالق المماثلة، والترياق الوحيد هومواكبة العصر والتحلي بالمعايير.

الملخص النهائي

  • يمكن لأجهزة الكمبيوتر تشغيله، لكن لا يمكن لنظام أندرويد تشغيله، لأنه <script language="javascript"> مُهمَل.
  • كروميوم شنومكس يتولى Android Chrome زمام المبادرة في التخطي language يصف <script> 块。
  • الحل هو: الاستخدام <script><script type="text/javascript">.
  • بعد التعديل، قم بتحديث ذاكرة التخزين المؤقت وسيتم استعادة المشكلة.
  • ينبغي على المطورين دائمًا الانتباه إلى تحديثات المتصفح وتطوير عادة كتابة التعليمات البرمجية بطريقة موحدة.

لذا، في المرة القادمة التي تواجه فيها خطأ غريبًا حيث يعمل الكمبيوتر بشكل جيد ولكن الهاتف لا يعمل، قد يكون من الأفضل أن تفكر في هذا: هل هناك "أثر من القرن الماضي" مخفي في الكود الخاص بك؟

مدونة Hope Chen Weiliang ( https://www.chenweiliang.com/ ) شارك "لماذا يفشل كود JS في متصفح Chrome على نظام Android؟ تم الكشف عن سبب عدم التنفيذ وحل بنقرة واحدة!"، والذي قد يكون مفيدًا لك.

مرحبا بكم في مشاركة رابط هذه المقالة:https://www.chenweiliang.com/cwl-33236.html

لاكتشاف المزيد من الحيل المخفية🔑، مرحبًا بك في الانضمام إلى قناتنا على Telegram!

مشاركة ومثل إذا كنت ترغب في ذلك! مشاركاتك وإعجاباتك هي حافزنا المستمر!

 

发表 评论

لن يتم نشر عنوان بريدك الإلكتروني. 必填 项 已 用 * 标注

انتقل إلى الأعلى