هل تساعد قوالب JSON في تحميل المحتوى عبر AJAX وتحسين الأداء؟[مغلق]

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

سؤال

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

هذه هي إحدى القائمة الموجودة في اللوحة اليسرى:

<a href="javascript:void(0);" onclick="fnGetFiles();">Files</a>     

هذه هي الوظيفة التي تسمى والتي تحصل على HTML:

function fnGetFiles(){
  $('#mainDashboard').html('<div class="rightContainer"><div class="tabLoader"></div></div><div class="clear"></div>');
  $.get(USER_DASHBOARD+'file_share/files.php',function(data){
  $('#mainDashboard').html(data);
});

لذلك نقوم بشكل أساسي بإرفاق (إلحاق) HTML مباشرة. لكنني قمت للتو بالاطلاع على لوحة تحكم تويتر enter image description here
الأول هو معالجة عنوان URL الذي يقومون به للتنقل بين القوائم المختلفة على اليسار (تمت إضافة صورة كمرجع). إنه يتغير بسرعة ويتم تحميل المحتوى. التفتيش الكود الذي لاحظته يرسلون html كسلاسل JSON.
لست متأكدًا تمامًا ولكن هل هذا تعزيز الأداء بأي شكل من الأشكال؟ ​​إن إنتاجي ضعيف بعض الشيء وأود أن أعرف بالضبط ما هي الأطر التي يمكنني استخدامها لتحقيق شيء مشابه لهذا(أواجه أيضًا مشكلات متضاربة في AJAX بين البرامج النصية).انا استخدم PHP، مسج لطلبي.
حاولت الحصول على معلومات من dev.twitter.com,والمدونة ولكن لم أتمكن من العثور على أي معلومات محددة حول هذا الموضوع.
من فضلك إن أمكن حاول إرشادي وإلقاء بعض الضوء عليه.
شكرا لك على وقتك.

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

المحلول

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

تحتاج مكالمات AJAX الخاصة بك فقط إلى التوقف البيانات المطلوبة لملء HTML الخاص بك, ، وأضف هذه البيانات إلى DOM.JSON / XML يشبه البروتوكول تمامًا:

يجب أن يتم الاتفاق على بروتوكولات الاتصالات من قبل الأطراف المعنية.

بالنسبة إلى JS > PHP > JS، يعد JSON "بروتوكولًا" رائعًا (طريقة اتصال متفق عليها) للاختيار لأنه يحدد معيارًا، وما عليك سوى استخدامه json_encode() / json_decode() في PHP الخاص بك، و $.parseJSON() إذا كنت تستخدم jQuery.يعد استخدام JSON مجرد تنسيق مراسلة متفق عليه، والذي يجب عليك، كمطور، الالتزام باستخدامه لأنه "معياري".

لا ترغب في إرسال أي بيانات إضافية عبر السلك لا تحتاج إليها.لا ترسل HTML إلا إذا كنت في حاجة إلى ذلك.اطلب واستجب بالبيانات التي تحتاجها فقط.

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

بالإضافة إلى ذلك، أنا أستخدم مقابس الويب، لأن إطلاق مجموعة كبيرة من طلبات AJAX للبيانات في الوقت الفعلي ليس هو ما تم تصميم طلبات AJAX من أجله.إذا كنت تحتاج فقط إلى البيانات كل 5 إلى 10 ثوانٍ، فلا بأس، ولكن في كثير من الأحيان أكثر من ذلك وتريد بعض التقنيات ثنائية الاتجاه مثل مقابس الويب، والتي ستتطلب منك تعلم React PHP وشيء مثل Ratchet لتنفيذه (عندما تبدأ في العمل) ومع ذلك فهو رائع).

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

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