it-swarm.asia

كيف يمكنني تقليل تكاليف تحميل مكتبات JS الكبيرة؟

إذا كنت أستخدم مكتبة Javascript كبيرة لصفحتي ، فكيف يمكنني التأكد من أن هذا لا يضر باستخدام المستخدم للموقع؟

23
Macha

هناك 4 أشياء يمكنك القيام بها.

  1. تصغير ملف JS الخاص بك. هذا يزيل كل التعليقات ومساحة بيضاء لتقليل حجمها.
  2. ادمج ملفات JS في كل صفحة بحيث لا يوجد سوى ملف واحد.
  3. استخدم حزمة gzip لملفاتك عند إرسالها. هذا سيجعلهم أصغر
  4. ضع Javascript غير مطلوب على الفور في أسفل الصفحة بحيث يتم تحميله في النهاية. سيتيح ذلك للمستخدم رؤية واستخدام الصفحة حتى قبل تحميل JS بالكامل.

وقد اقترح بعض الأشخاص الآخرين:

  • سيتعامل Apache تلقائيًا مع الضغط (وتخزين مؤقت للمحتوى المضغوط) مما يبسط بشكل كبير إدارة الملفات
  • سيؤدي جعل جافا سكريبت بشكل صحيح إلى ذاكرة التخزين المؤقت إلى تحقيق فوائد كبيرة.
  • ستسمح مجالات أحرف البدل (ذات URIs المتعددة) باتصالات متزامنة أكثر. الجلب المسبق ليس فقط للصور /
25
Ben Hoffman

إذا كنت تستخدم مكتبات عامة (مثل jQuery أو Prototype أو Dojo) ، فيمكنك إلغاء تحميل الملف إلى Google وجعلها تخدمها ، يمنحك هذا العديد من المزايا:

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

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

21
Cebjyre

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

6
txwikinger

بالإضافة إلى الإجابات أعلاه ، يمكنك استخدام Google Closure Compiler لضغط JS وتحسينه تلقائيًا أثناء الدمج مع مكتبات الطرف الثالث (jQuery ، YUI ، mootools ، وما إلى ذلك)

4
theycallmemorty

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

كما يلاحظ ستيف سويدرز في مدونته "مواقع الويب عالية الأداء" -

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

في مكان آخر يكتب ..

تفتح المتصفحات عددًا محدودًا من الاتصالات لكل مجال ... يؤدي تقسيم الطلبات أو مشاركتها عبر مجالين ، بدلاً من مجال واحد ، إلى صفحة أسرع ، خاصة في IE 6 & 7

0
mvark