سؤال

هل يهم بالفعل نوع شبكة CDN التي تستخدمها للربط بملف jquery الخاص بك أو أي ملف جافا سكريبت لهذه المسألة.هل من المحتمل أن يكون أحدهما أسرع من الآخر؟ما هي العوامل الأخرى التي يمكن أن تلعب دورًا في CDN الذي تقرر استخدامه؟أعلم أن Microsoft وYahoo وGoogle جميعها تمتلك شبكات CDN الآن.

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

المحلول

التحديث بناء على التعليقات:

نسخة مختصرة: لا يهم كثيرًا، لكنه قد يعتمد على ما يستضيفونه.يستضيفون جميعًا أشياء مختلفة:لا تستضيف Google jQuery.Validate، ولم تستضيف Microsoft jQuery-UI، فهي تفعل ذلك منذ عام 2016!!، وتقدم Microsoft نصوصها البرمجية التي يمكن تقديمها عبر ScriptResource.axd وتكامل أسهل (على سبيل المثال. مدير البرنامج النصي مع ASP.Net 4.0).

ملاحظة مهمة: إذا كنت تقوم بإنشاء تطبيق إنترانت، فابتعد عن أسلوب CDN.لا يهم من يستضيفه، إلا إذا كنت على جداً مع زيادة التحميل على الخادم داخليًا، لن يمنحك أي CDN أداءً أفضل من شبكة إيثرنت المحلية بسعة 100 ميجابايت/1 جيجابايت.إذا كنت تستخدم CDN لتطبيق داخلي صارم، فأنت أداء يضر. قم بتعيين رؤوس انتهاء صلاحية ذاكرة التخزين المؤقت بشكل صحيح وتجاهل شبكات CDN موجودة في سيناريو الإنترانت فقط.

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

يستخدم المشروع الذي أعمل عليه حاليًا كلاً من شبكات CDN التي تعمل بشكل أفضل مع الحل الذي نقدمه.عدة عوامل تلعب في هذا.المستخدمين مع المتصفح الأقدم من المحتمل أنهم ما زالوا يقدمون طلبين متزامنين لكل مجال كما أوصت به مواصفات HTTP.هذه ليست مشكلة بالنسبة لأي شخص يقوم بتشغيل أي شيء جديد بشكل لائق يدعم خطوط الأنابيب (كل متصفح حالي)، ولكن استنادًا إلى عامل آخر، فإننا نزيل هذا القيد أيضًا، على الأقل فيما يتعلق بجافا سكريبت.

شبكة CDN الخاصة بـ Google التي نستخدمها من أجل:

شبكة CDN الخاصة بشركة Microsoft التي نستخدمها من أجل:

خادمنا:

  • Combined.js?v=2.2.0.6190 (Major.Minor.Iteration.Changeset)

نظرًا لأن جزءًا من عملية البناء لدينا هو دمج جميع برامج جافا سكريبت المخصصة وتصغيرها، فإننا نقوم بذلك عبر مدير برامج نصية مخصص يتضمن إصدارات الإصدار أو تصحيح الأخطاء (غير المصغرة) لهذه البرامج النصية اعتمادًا على البنية.وبما أن Google لا تستضيف حزمة التحقق من صحة jQuery، فقد يكون هذا جانبًا سلبيًا.تقوم شركة MVC بتضمين/استخدام هذا في إصدارها 2.0، لذا يمكنك الاعتماد بشكل كامل على شبكة CDN الخاصة بشركة Microsoft لتلبية جميع احتياجاتك، وكل ذلك تلقائيًا عبر ScriptManager.

الحجة الأخرى الوحيدة التي يجب تقديمها هي أوقات DNS، وهناك تكلفة لذلك من حيث سرعة تحميل الصفحة. في المتوسط: ببساطة لأنه تم استخدامه أكثر (لقد كان موجودًا لفترة أطول) ajax.googleapis.com من المرجح أن يتم إرجاعها بواسطة DNS في وقت أقرب من ذلك ajax.microsoft.com, ، وذلك ببساطة لأن خادم DNS المحلي كان من المرجح أن يتلقى طلبًا له (هذا هو المستخدم الأول في المنطقة الجزاء).هذا ال جداً شيء بسيط ويجب أخذه في الاعتبار فقط إذا كان الأداء مهمًا للغاية، وصولاً إلى المللي ثانية.
(نعم:أدرك أن هذه النقطة تتعارض مع استخدامي لشبكتي CDN، ولكن في حالتنا، فإن وقت DNS يطغى عليه وقت الانتظار على جافا سكريبت/الحظر الذي يحدث)

أخيرًا، إذا لم تكن قد نظرت إليها، فهي واحدة من أفضل الأدوات الموجودة فايربوغ, ، وبعض المكونات الإضافية لذلك: سرعة الصفحة و YSlow.إذا كنت تستخدم CDN لكن صفحاتك تطلب صورًا في كل مرة بسبب عدم وجود رؤوس ذاكرة تخزين مؤقت، فأنت تفتقد الثمرة المنخفضة.يمكن أن توفر لك لوحة Firebug's Net تحليلاً سريعًا لوقت تحميل صفحتك، ويمكن أن تقدم Page Speed/YSlow بعض الاقتراحات الجيدة للمساعدة.

نصائح أخرى

ويجب عليك استخدام على الاطلاق CDN Google للمسج (وهذا يأتي من مطور مايكروسوفت المرتكزة).

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

وجوجل سوف نرسل لك نسخة مسج مصغر مع البرمجيات الخاصة بها، وهذا الإصدار هو أخف 6KB من النسخة القياسية مصغر يخدم MS. الذهاب لجوجل.

أحد الأشياء البسيطة التي يجب مراعاتها هو أن كلا الشركتين تقدمان مكتبات "إضافية" مختلفة قليلاً:

اعتمادًا على احتياجاتك، قد يكون هذا مناسبًا.

وتجدر الإشارة أيضا إلى أن ما ajax.microsoft.com هو النطاق الفرعي للطلبات microsoft.com ارسال كافة ملفات تعريف الارتباط microsoft.com إضافة إلى الوقت الإجمالي الذي يستغرقه الحصول على الملف مرة أخرى.

وأيضا، ajax.microsoft.com تستخدم ضغط IIS7 الافتراضي وهو أدنى من ضغط القياسية التي تستخدم خوادم الويب الأخرى.

http://ajax.microsoft.com/ajax/jquery/jquery-1.4 .4.min.js - 33.4K

http://ajax.googleapis.com/ajax/libs/jquery /1.4.4/jquery.min.js - 26.5K

وأيضا، كما ذكر آخرون جوجل CDN وسيلة أكثر شعبية مما يزيد كثيرا من فرص ملف يتم التخزين المؤقت.

ولذا نوصي بشدة باستخدام جوجل.

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

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

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script>    
<script type="text/javascript">
    !window.jQuery && document.write('<script src="/scripts/jquery-1.4.2.min.js"><\/script>')
</script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.4/jquery-ui.min.js" type="text/javascript"></script>
<script type="text/javascript">
    !window.jQuery.ui && document.write('<script src="/scripts/jquery-ui-1.8.2.min.js"><\/script>')
</script> 

يتعلق الأمر بالإحصائيات: jquery.com يقوم بتحميل jQuery من Google.وكذلك الحال مع Twitter وStackoverflow وغيرها الكثير.لذلك، هناك احتمالات كبيرة جدًا أن يكون مستخدم موقع الويب الخاص بك قد قام بالفعل بتخزينه مؤقتًا = لا يوجد تنزيل على الإطلاق.

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

هل من المحتمل أن يكون أحدهما أسرع من الآخر؟

لقد كنت مهتمًا بالفعل بهذا الأمر بنفسي، لذا قمت بإعداد صفحة اختبار jsbin باستخدام كل مما يلي ثم قمت بتشغيلها من خلال أداة المقارنة المرئية الخاصة بـ webpagetest.org.اختبرت:

  1. ajax.googleapis.com
  2. jquery.com
  3. ajax.aspnetcdn.com
  4. cdnjs.cloudflare.com

من كان الأسرع: jquery.com بمقدار 0.1 ثانية في كلا الاختبارين

من كان الأبطأ: ajax.aspnetcdn.com بمقدار 0.7 ثانية في الاختبار الأول و ajax.googleapis.com بمقدار ثانية واحدة في الاختبار الثاني

هنا الاختبار الأول (تم اختبار كل منها 3 مرات):

فيديو: http://www.webpagetest.org/video/view.php?id=121019_16c5e25eff2937f63cc1714ed1eac814794e62b3

التقارير: http://www.webpagetest.org/video/compare.php?tests=121019_D2_KF0,121019_9Q_KF1,121019_WW_KF2,121019_9K_KF3

هنا الاختبار الثاني (3 أخرى لكل منهما):

فيديو: http://www.webpagetest.org/video/view.php?id=121019_a7b351f706cad2c25664fee7ef349371f17c4e74

التقارير: http://www.webpagetest.org/video/compare.php?tests=121019_MP_KJN,121019_S6_KJP,121019_V9_KJQ,121019_VY_KJR

وكما ذكر من قبل <وأ href = "http://royal.pingdom.com/2010/05/11/cdn-performance-downloading-jquery-from-google-microsoft-and-edgecast-cdns/" يختلط = "نوفولو"> Pingdom :

<اقتباس فقرة>   

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

     

وهذا يعني أن CDN الأكثر استخداما على نطاق واسع سوف يكون على خلاف لها   الجانب، والتي يمكن أن تؤتي ثمارها لموقعك.

     

وهناك عدد من الملاحظات على الأداء:        CDN جوجل هو دائما أبطأ من ثلاثة في كل من أمريكا الشمالية وأوروبا. في أوروبا، مايكروسوفت CDN هو الأسرع.

واعتقد ان ذلك يتوقف على المكان الذي هو جمهورك المستهدف. يمكنك استخدام alertra.com للتحقق كل من السرعة CDN من العديد من المواقع في جميع أنحاء العالم.

وأحد الاعتبارات إضافية - إذا كان موقعك هو SSL وتحتاج إلى دعم الروبوت 2.1 (أو إصدار سابق)، فإن شهادة SSL على نسخة HTTPS من مايكروسوفت CDN تحطم تلك النسخ من متصفح أندرويد، في هذه المسألة: <ل أ href = "http://code.google.com/p/android/issues/detail؟id=5001" يختلط = "نوفولو"> http://code.google.com/p/android/issues/detail؟id = 5001 . انها ليست مايكروسوفت "خطأ"، وشهادة SSL صالحة من الناحية الفنية والخلل في تنفيذ SSL الروبوت ... ولكن سوف تعطل موقع الويب الخاص بك، مع ذلك.

ووسيرت SSL على CDN جوجل لا تقع متعارض من هذه المسألة بالذات (المتعلقة الشهادة "شهادة موضوع الاسم البديل").

وهكذا، على 2.1 دعم SSL + الروبوت، استخدم CDN جوجل.

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

مايكروسوفت CDN اتصال HTTP هو الاحتفاظ النشاط الذي هو زائد كبيرة عندما كنت تطلب عدة عناصر.

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

في صيفي تقول أن مايكروسوفت لا تقدم UI، هذا ليس صحيحا (أي أكثر من ذلك). ويمكن downloadloade على http://www.asp.net/ajaxlibrary/cdn.ashx.

ضع في اعتبارك أيضا عند استخدام جوجل CDN أن بعض الناس مرات جعل الأخطاء المطبعية مثل ajax.googelapis.com. هذا يمكن أن إنشاء هجوم XSS سيئة حقا (عبر موقع البرمجة). لقد اختبرت فعلا ذلك عن طريق تسجيل الخطأ المطبعي googlapis.com وبسرعة كبيرة وجدت نفسي تخدم طلبات جافا سكريبت، والخرائط، المغلق الخ.

ولي بالبريد الإلكتروني جوجل وطلب منهم تسجيل مماثل CDN الخطأ المطبعي URL لكنها لم تتلق أي رد. هذا يمكن أن يكون السبب الحقيقي عدم الاعتماد على لCDN لأن هناك المهاجمين يحتمل أن تكون خطرة في انتظار طلبات الخطأ المطبعي ويمكن أن تكون بسهولة العودة مسج وغيرها مع حمولة XSS.

وشكرا

واعتمادا الذي صناعة الأهداف التطبيق، قد لا ترغب في استخدام CDN تدار من قبل منظمات أخرى. وغالبا ما تثير قضايا تتعلق بالامتثال والخصوصية والسرية.

وعلى سبيل المثال، عند تضمين برنامج Google Analytics في تطبيق آمنة، والمتصفح لا يزال يرسل URL الحالي باسم "المرجعية" رأس. أي معرفات ويقول معرف جلسة أو رمز سري قد تظهر في سجلات الخاصة بهم. على سبيل المثال، إذا كان IP العميل من 192.0.2.5references الشبكي: //healthsystem.example/condition/impotence ، ثم حسنا، يمكنك استنتاج المعلومات التي تعتبر سرية إلى حد ما.

وتشمل

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

وبينما كنت قد الثقة جوجل ومايكروسوفت أو ياهو، يمكن للمستخدمين لا.

لصناعات مثل التمويل والرعاية القانونية والصحية، قد ترغب في إنشاء CDN الخاصة بك مع مساعدة من البائع (على سبيل المثال أكامي) والتي يمكنك توقيع ايه.

وأنصح أن كنت قاعدة استخدام الخاص بك على الموقع العام من المستخدمين التي تستهدفها.

إذا ويستهدف موقع الويب الخاص بك لعامة الناس، ثم باستخدام أن CDN جوجل أن يكون خيارا جيدا.

إذا ويستهدف موقع الويب الخاص بك أيضا في الصين، ثم باستخدام أن مايكروسوفت CDN يكون خيارا أفضل. أنا أعرف من تجربتي، كما أبقى خوادم Google الحصول على حظره من قبل الحكومة الصينية، وجعلها المواقع التي يستخدمها برنامج الأمم المتحدة للloadable.

* ملاحظة أنه يمكنك من كوس إنشاء مواقع محددة المنطقة، على سبيل المثال cn.mysite.com لتلبية خصيصا للصين، ولكن إذا كنت منخفض على الموارد والوقت، وقيمته في الاعتبار.

والقائمة الكاملة من مايكروسوفت CDN هنا. http://www.asp.net/ajaxlibrary/cdn.ashx

ولديهم منذ تغيير اسمها إلى ajax.aspnetcdn.com ، أو مما يقلل من احتمال انسداد قواعد جدار الحماية.

وأود أن استخدام على حد سواء!

وكما تم استضافة جوجل مسج حول وقتا أطول، وهناك احتمالات أعلى من ذلك بكثير أن الناس لديهم بالفعل مؤقتا بالمقارنة مع مايكروسوفت واحد، لذلك كنت أود أن يكون لأول مرة.

وشخصيا، أود أن استخدام شيء من هذا القبيل -

if (typeof jQuery == 'undefined') {  
    // jQuery is not loaded  

  document.write("<scr" + "ipt type=\"text/javascript\" src=\"http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js\"></scr" + "ipt>");
        }
} else {
    // jQuery is loaded
}

و(لست متأكدا هذه الأعمال٪ 100، ولكن كنت مجرد الذهاب لكتابة فكرة وليس سبيل المثال - وهذا يحيل الى استضافت جوجل مسج وليس مايكروسوفت واحدة وأنا لا يمكن العثور على وصلة)

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