سؤال

أنا أبحث (يمكن القول) عن الطريقة الصحيحة لإرجاع البيانات من ملف XmlHttpRequest.الخيارات التي أراها هي:

  • HTML عادي.اسمح للطلب بتنسيق البيانات وإعادتها بتنسيق قابل للاستخدام.
    ميزة:من السهل أن تستهلك من خلال صفحة الاتصال.
    عيب:جامدة جدًا، وملتصقة بتصميم ثابت.

  • XML.اسمح للطلب بإرجاع XML، وقم بتنسيقه باستخدام XSLT في صفحة الاتصال.
    ميزة:يتم استهلاك الخدمة المطلوبة بسهولة من قبل مصادر أخرى.
    عيب:هل دعم المتصفح لـ XSLT جيد بما فيه الكفاية؟

  • JSON.اسمح للطلب بإرجاع JSON، واستهلكه باستخدام جافا سكريبت، وقم بعرض HTML وفقًا لذلك.
    ميزة:من الأسهل "OO-ify" أن يقوم جافا سكريبت بتقديم الطلب.
    عيب:ربما ليس سهل الاستخدام مثل الخيارين السابقين.

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

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

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

المحلول

إذا كنت تبحث عن حل سريع يعمل مع معظم أطر العمل المتاحة، فسأختار JSON.من السهل أن تبدأ وتعمل.

إذا كنت تحاول إنشاء تطبيق أكبر ستقوم بتوسيعه (من حيث الحجم أو ربما واجهة برمجة التطبيقات الخاصة بك لملحقات الطرف الثالث) فسأختار XML.يمكنك كتابة وكيل لتوفير المعلومات بتنسيق JSON أو HTML أيضًا، ولكن وجود XML كمصدر رئيسي يستحق بالتأكيد الوقت والجهد أثناء إنشاء التطبيق.

يحب @ جون توبلي قال:هذا يعتمد.

نصائح أخرى

أتفق مع جون توبلي - فالأمر يعتمد على التطبيق.هناك مقالة جيدة عن quirksmode تناقش مزايا وعيوب كل تنسيق قد ترغب في قراءتها: http://www.quirksmode.org/blog/archives/2005/12/the_ajax_respon.html

أعتقد أن هذا النوع يعتمد على مستوى "الجاذبية" الذي سيتمتع به تطبيقك.إذا كانت الواجهة الأمامية الخاصة بك عبارة عن "عميل غني"، مثل Gmail، فسأختار حل JSON، حيث سيتعين عليك حل مشكلة إنشاء عرض جانب العميل على أي حال.إذا كنت تستخدم ajax بشكل مقتصد، لتوفير رسائل بسيطة للمستخدم، أو تحديث بعض الحقول بين الحين والآخر، وما إلى ذلك، فسأختار الخيار 1، نظرًا لأن معظم منطق العرض الخاص بك موجود بالفعل على الخادم.

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

سأحصل على إطار عمل مثل النموذج الأولي أو Extjs، الذي يحتوي على الكثير من وظائف تحميل البيانات المضمنة في XML وJSON، بالإضافة إلى أنك ستحصل على نتائج أكثر قابلية للتنبؤ، حيث تحتوي الأطر على معالجات أحداث للتأكد من نجاح XmlHttpRequest أو فشله.بالإضافة إلى أنك تحصل على الدعم لجميع المتصفحات المختلفة.

لا ينبغي أن يكون من الصعب إنتاج تنسيق استجابة مختلف.JSON يعمل بشكل أفضل بالنسبة لي، وأنا أحب الاحتفاظ بها OO في js, ولا أعرف كيفية تحليل XML جيدًا :)

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