الذين ينبغي أن تنسيق البيانات على الشاشة ؟

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

  •  23-09-2019
  •  | 
  •  

سؤال

لدي جانغو عرض هذا الرأي يعود الطاولة التي يتم ملؤها بشكل غير متزامن مع اياكس الاتصال.

من وجهة نظر تصميم ، التي يجب أن تتبع:

  1. في جانغو الرأي ، ودعا عبر اياكس, ترجع محتوى الجدول سلمان استجابة html الذي يحتوي على هوامش الربح لكل خلية.جافا سكريبت رد معالج يأخذ محتويات الصفعات لهم يمسها في خلايا الجدول.
  2. في جانغو الرأي ، ودعا عبر ajax, يعود نقية البيانات حول ما ينبغي أن تذهب إلى الجدول مرة أخرى استجابة json.المتزامن جافا سكريبت رد يأخذ البيانات من الأشكال الملائمة لهم العلامات ، و يضعه في الجدول.

وبعبارة أخرى, الذي ينبغي أن يكون مسؤولية العلامات تنسيق محتويات الخلية?عرض أو جافا سكريبت ؟

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

أود أن أسمع وجهة نظرك.

لا يوجد حل صحيح

نصائح أخرى

إذا كنت تملأ الجدول بأكمله ، فيمكنك وضع طاولتك في قالبها الخاص وإرجاع HTML للجدول عبر Ajax/JSON.

ستحتاج إلى تحرير القالب الأصلي لتضمين قالب الجدول:

 {% include "myapp/_table.html" %}

وفي العرض ، أعد القالب المقدم كمتغير JSON ، والذي سيحل محله JavaScript في:

 return { 'table': render_to_string("myapp/_table.html", context) }

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

ذلك يعتمد (كما في كثير من الأحيان).

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

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

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

في MVP نظام مثل Django ، يقرر العرض البيانات التي يجب عرضها ، ويقرر مقدم العرض كيفية عرضه. لذلك يجب على جافا سكريبت أن يقوم الجزء الأكبر من التنسيق ما لم يثبت من الصعب القيام بذلك.

بل هو جيد لممارسة Unabstrusive جافا سكريبت ، كما دعا من قبل بعض الناس Hijax

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

وبمجرد الانتهاء من هذا, يمكنك تضمين يمتد جزء من جانغو القالب داخل "إذا لم أياكس", لذلك يمكنك فقط الحصول على المطلوب الجدول في اياكس الاستجابة التي يمكنك تحميل العميل المطلوبة div.

فمن الأمم المتحدة الضرورية و الزائدة عن الحاجة للحفاظ على العلامات مرتين مرة في الخادم مرة واحدة في العميل ، في جافا سكريبت.

وبالتالي أنا أفضل الخيار الأول من خادم redering و العميل فقط تحميل المقدمة html.

لقد صادفت هذا عدة مرات من قبل ، وأختار عمومًا هذا الأخير ، حيث يعيد العرض Pure Json.

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

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

أخيرًا ، يمكنك استخدام مكتبة مثل John Resig's التزحلق الجزئي أو قوالب الإغلاق لتبسيط جيل HTML من جانب العميل.

سأذهب مع الاختيار الأول ، وهو يعرض المزيد من الإيجابيات للمستخدم: يتم تحميل الصفحة على الفور (لا يوجد انتظار لمكالمة Async) ، لا مطلوب (على سبيل المثال للجهاز المحمول)

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