ما هي أفضل الاستراتيجيات لاستخدام مكتبات AJAX المتعددة؟

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

سؤال

ما هي الخبرة التي يمكنك مشاركتها حول استخدام مكتبات AJAX المتعددة؟

هناك ميزات مفيدة في Prototype، وبعضها في jQuery، ومكتبة Yahoo، وما إلى ذلك.هل من الممكن تضمين جميع المكتبات واستخدام ما تريده من كل منها، وهل تعمل جميعها بشكل جيد مع مساحات الأسماء، وما إلى ذلك.من أجل السرعة، هل هناك حد عملي لحجم/عدد المكتبات المراد تضمينها أم أن هذا لا يكاد يذكر؟هل هناك أزواج تعمل بشكل جيد معًا (على سبيل المثال؟النموذج الأولي/السيناريو) أو الأزواج التي لا تفعل ذلك؟

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

المحلول

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

كما قالت الإجابات الأخرى، فإن معظمها لا يتعارض.

انظر ياهو! أداء استثنائي موقع لمزيد من المعلومات.

نصائح أخرى

يمكنك استخدام واجهة برمجة تطبيقات مكتبات Google AJAX.يوفر شبكة توزيع مشتركة وبنية تحميل لـ jQuery وprototype وscript.aculo.us وMooTools وdojo

YUI ذات مساحة أسماء كبيرة جدًا لذا لا ينبغي أن تتعارض مع المكتبات الأخرى.

كما ذكرنا سابقًا، يمكنك تشغيل jQuery في وضع عدم وجود تعارض.

النموذج المبدئي يفعل تواجه بعض المشكلات في اللعب بشكل جيد مع المكتبات الأخرى جزئيًا لأنها (أو اعتادت على) تعديل الكائنات الأساسية مثل Array. بروتوسافي محاولات لمعالجة تلك القضايا.

Script.aculo.us هي مجرد مكتبة عناصر واجهة مستخدم تقع أعلى Prototype، لذا من الواضح أن هذين الاثنين يجب أن يعملا معًا بشكل جيد.

كل هذا يعني أنك استطاع استخدم YUI وjQuery وPrototype وScript.aculo.us في تطبيقك، ولكن قد تجد أن استخدام مكتبة واحدة يجعل صيانة الأشياء أسهل كثيرًا.

أنا مؤمن بـ jQuery أيضًا، لذا أعذروني على قلة معرفتي بالآخرين، ولكن ...

ما يجعل jQuery رائعًا جدًا هو وضع عدم التعارض، على سبيل المثال، يمكنك القيام بما يلي:

$('#foobar').whatever();

مع وضع عدم الصراع، يمكنك القيام بذلك:

var jq = jQuery.noConflict();
jq('#foobar').whatever();

واحد أقل شيء يدعو للقلق.أتصور أن النموذج الأولي يقدم ميزة مماثلة، وكذلك Yahoo.

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

يجب أن يكون الثلاثة قادرين.اختر الشخص الذي تفضله وقم بتمديده.:)

أنا أستخدم jQuery وإصدار ملف جافا سكريبت الوحيد من مجموعة أدوات Microsof ajax جنبًا إلى جنب في المشروع الآن.

أعتقد أنني سأستخدم jQuery وسينتهي بي الأمر بإزالة Microsoft.أنا جديد جدًا في استخدام jQuery، ولكن كلما تعلمت المزيد عنها، زاد إعجابي بها.

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

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

على سبيل المثال، يدعم JQuery مكالمات JSONP عبر النطاقات بمجرد إخراجها من الصندوق ويحتوي على مكتبة عناصر واجهة مستخدم رائعة في JQueryUI، بينما لا يدعم Prototype ذلك.

$.getJSON('http://anothersite.com/mashup.json?callback=?', function(data) { });

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

var Foo =  Class.create({  
  initialize: function(name) {
    this.name = name;
  }   
});

var Bar = Class.create(Foo, {
  initialize: function($super, name)  {
     $super(name);
   }
});

يتمتع Mootools بتأثيرات رائعة، ودعم جيد لـ OO، وعناصر واجهة مستخدم قوية حقًا وطلب عبر النطاق، ولكن (وقد يكون هذا مجرد انطباعي)، فإن مجتمع التطوير ليس تعاونيًا واجتماعيًا مع المجتمع العالمي (خارج mootools) مثل الآخرين المجتمعات (النموذج الأولي كان بهذه الطريقة).قد يكون هذا نتيجة لأن المطورين الرئيسيين لديهم يعيشون خارج الولايات المتحدة، وبالتالي لا يتمكنون من حضور أكبر عدد ممكن من المؤتمرات والمشاركة في المجتمع الأكبر.لن أدع ذلك يردعك تمامًا، لكن هذا شيء يجب أخذه في الاعتبار.

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

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