Html5-boilerplate: احتياطي jQuery المحلي: لن يقوم Chrome بتحميل البرامج النصية عبر document.write فوق الاتصالات البطيئة

تم إنشاؤها على ٨ سبتمبر ٢٠١٦  ·  9تعليقات  ·  مصدر: h5bp/html5-boilerplate

عبر jpdevries في تعليق على 1039

بالحديث عن document.write () الاحتياطية (التي أعتقد أنها قواعد) ماذا عن هذا؟

لن يقوم Chrome بعد الآن بتحميل البرامج النصية التي يتم إدراجها عبر document.write () عندما يكون اتصال الشبكة بطيئًا
https://developers.google.com/web/updates/2016/08/removing-document-write

هل تمت مناقشة كيفية الرد على هذا حتى الآن؟

ليس بعد ، ولكن شكرًا على لفت انتباهنا إلى هذا.

فيما يلي الأجزاء المثيرة للاهتمام من المستند المرتبط

مع وضع هذه البيانات في الاعتبار ، أعلن فريق Chrome مؤخرًا عن نية التدخل نيابة عن جميع المستخدمين عندما نكتشف هذا النمط السيئ المعروف عن طريق تغيير كيفية معالجة document.write () في Chrome (راجع حالة Chrome). على وجه التحديد ، لن يقوم Chrome بتنفيذ ملف

help wanted javascript

ال 9 كومينتر

شكرا لفتح العدد roblarsen. لقد كنت أتساءل عما إذا كان من المحتمل أن تؤدي إضافة defer إلى جميع البرامج النصية المضمنة إلى حل هذا الأمر؟

سيستمر تنفيذ البرامج النصية ذات السمة "غير متزامن" أو "تأجيل".

شيء مثل

<script defer src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<script defer>window.jQuery || document.write('<script defer src="js/vendor/jquery-1.12.4.min.js"><\/script>')</script>
<script defer src="js/plugins.js"></script>
<script defer src="js/main.js"></script>

ال

<script defer>window.jQuery || document.write('<script defer src="js/vendor/jquery-1.12.4.min.js"><\/script>')</script>

يشبه نوعًا من البداية defer . يبدو أنه يعمل ، لكن لست متأكدًا مما إذا كان ذلك صحيحًا.

حسنًا ... أو ربما تكون نصوص jquery غير متزامنة وتأجيل البرنامج المساعد والنصوص الرئيسية. تحتاج إلى التأكد من تحميل هؤلاء بعد jQuery بالطبع.

jpdevries أعتقد أن إعادة كتابة نص التضمين لاستخدام واجهة DOM حديثة (parentNode.insertBefore) مثل استخدامات Google Analytics سيكون شيئًا يجب النظر إليه أيضًا.

المناقشات ذات الصلة حول هذا والتي يمكن أن تساعد في اتخاذ القرار:

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

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

jpdevries شيئين

  1. تم إهمال التأجيل على <script> s بواسطة WHATWG. السبب السيئ غير الكافي المعطى هو أنه لم يستخدمه أحد ... قصة عرجاء حقيقية ، لكنها حدثت للأسف .... لذا لن تنجح البداية defer . :(
  2. كان أمر التنفيذ "تأجيل" عربات التي تجرها الدواب في IE 8-9. وكانت هناك مشكلات في إطلاق الحدث "التفاعلي" مبكرًا جدًا في IE 9-10 مما قد يؤثر على تنفيذ البرامج النصية "المؤجلة". يمكن التحايل على الأخير ؛ ومع ذلك ، يتضمن ذلك اختراقًا ونصًا مضمنًا في الأسفل لتشغيل "تفاعلي" بشكل صحيح ... لذا فإن شرط النموذج المعياري العام باستخدام defer ينتظر بشكل أساسي توقف استخدام IE10.

hexalys 😭 لقد كنت

إغلاق! كانوا آمنين!

roblarsen يا هذا شيء عظيم! هل تراجع Chrome عن قرارهم؟ أشعر بالفضول لماذا نحن بأمان لأنني حقًا ❤️ هذا النمط

jpdevries يتم تشغيله فقط عندما يكون الطلب عبر الأصل لذلك نحن بخير. إنه احتياطي محلي بعد كل شيء.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات