جافا سكريبت يحظر تنزيل المحتوى على موقع الويب الخاص بك أثناء الصفحة

StackOverflow https://stackoverflow.com/questions/658599

  •  20-08-2019
  •  | 
  •  

سؤال

هل هذه هي أفضل طريقة لتضمين جافا سكريبت على موقع الويب الخاص بك؟ http://www.webdigi.co.uk/blog/2009/avoid-javascript-blocking-content-download-on-your-website-during-page-load/

هل كانت مفيدة؟

المحلول

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

و* ياهو يقضي بنشاط قدرا كبيرا من المال البحث هذه وكرس، بدوام كامل الناس (بما في ذلك الرائعة ستيف سودرز) الذي نشر النتائج التي توصلوا إليها <لأ href = "http://developer.yahoo.com/performance/ "يختلط =" نوفولو noreferrer "> على الانترنت و في شكل كتاب .

نصائح أخرى

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

باختصار المقال يقول إرفاق <script> العقد بشكل حيوي في DOM من أجل تحقيق التنزيلات الموازية لملفات البرامج النصية.هذا يعمل وليس جديدا.

ومع ذلك، فإنه لا يذكر العيب الأكبر لهذه الطريقة:على الرغم من أنه سيتم تنزيل البرامج النصية بالتوازي، بالترتيب الذي هي عليه أعدم ليست حتمية. سيقوم IE بتنفيذها بالترتيب الذي تنتهي به عملية التنزيل، بينما ينفذها Firefox بالترتيب المرفق في DOM.

هذه مشكلة.على سبيل المثال، لنفترض أنه تمت إضافة البرنامج النصي A والبرنامج النصي B باستخدام هذه التقنية.الآن تخيل أن النص A هو jQuery، والنص B يفعل هذا:

$(document).ready(function(){...})

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

يرى هذا المقال للحصول على تفسير أفضل.

إجابة ريكس إم هو الطريق للذهاب.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top