¿Las plantillas JSON ayudan a cargar contenido a través de AJAX y mejorar el rendimiento?[cerrado]

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

Pregunta

Estamos trabajando en un panel dinámico que es muy similar al panel de configuración de Twitter en nuestra cuenta de Twitter. Como el panel tiene muchos controles, hay una gran cantidad de contenido que se completa dinámicamente. Así es como lo hacemos actualmente.

Este es uno del menú en mi panel izquierdo:

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

Esta es la función llamada que obtiene el 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);
});

Básicamente, adjuntamos (añadimos) directamente el HTML. Pero acabo de revisar el panel de Twitter. enter image description here
Primero está el manejo de URL que realizan para navegar entre los diferentes menús de la izquierda (imagen agregada como referencia). Simplemente cambia sobre la marcha y se carga el contenido. inspeccionando En el código noté que envían html como cadenas JSON.
No estoy exactamente seguro, pero ¿es esto? mejorar el rendimiento ¿De alguna manera? El mío es un poco pobre en producción y me gustaría saber exactamente qué marcos puedo utilizar para lograr algo similar a esto (Además, me enfrento a problemas conflictivos de AJAX entre scripts.).Estoy usando PHP,jQuery para mi solicitud.
Intenté obtener información de dev.twitter.com,y blog pero no pude encontrar ninguna información específica sobre esto.
Por favor, si es posible, intenta guiarme y arrojarme algo de luz.
Gracias por tu tiempo.

¿Fue útil?

Solución

Su HTML, JavaScript, imágenes y otros elementos del lado del cliente están todos estático.Deberían seguir así.No es necesario crear ningún elemento dinámicamente dentro de JavaScript.

Sus llamadas AJAX simplemente necesitan activarse, obtenga los datos necesarios para completar su HTML, y agregue estos datos al DOM.JSON/XML es como un protocolo:

Los protocolos de comunicación deben ser acordados por las partes involucradas.

Para JS > PHP > JS, JSON es un excelente 'protocolo' (método de comunicación acordado) para elegir porque establece un estándar y usted simplemente usa json_encode() / json_decode() en tu PHP, y $.parseJSON() si estás usando jQuery.Usar JSON es solo un formato de mensajería acordado que, realmente como desarrollador, debes comprometerte a usar porque es un "estándar".

No querrás enviar datos adicionales por cable que no necesites.No envíe HTML a menos que sea necesario.Solicita y Responde sólo con los datos que necesitas.

Sin entrar en demasiadas quejas aquí, existen muchas herramientas increíbles que te ayudarán a hacer cosas como esta.AngularJS, por ejemplo, le permite actualizar el DOM automáticamente con JSON devuelto por el servidor, mediante el uso de declaraciones como ng-repeat.Básicamente significa que no tienes que escribir ningún JavaScript personalizado para completar elementos DOM con datos recuperados del servidor (que tanto tu panel como tu mi panel de control están haciendo actualmente).

Además de esto, estoy usando websockets, porque generar una gran cantidad de solicitudes AJAX para datos en tiempo real no es para lo que están hechas esas solicitudes AJAX.Si solo necesita datos cada 5 a 10 segundos, está bien, pero con más frecuencia y desea alguna tecnología bidireccional como websockets, que requerirá que aprenda React PHP y algo como Ratchet para implementar (cuando lo haga funcionar). , sin embargo, es increíble).

Primero, acuerde un "protocolo" que utilizarán tanto el lado del cliente como el del servidor.Luego, sólo envíe y reciba datos que usted necesidad, y aquello que cambios.Cualquier otra cosa es estática y sólo desperdiciaría ancho de banda.No pases HTML.Finalmente, en cuanto a velocidad, enviar JSON vs.enviar texto sin formato: depende literalmente de la longitud de los caracteres que envíe.Eso es todo.De todos modos, estas ganancias de cualquier manera son tan insignificantes que no necesita preocuparse por ellas, a menos que esté enviando HTML, lo cual no es así.Eres.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top