Estoy trabajando en un sitio web y uso Ajax para actualizar el cuerpo por nombre de identificación ('mbody'). El sitio web funciona según lo previsto, pero luego me di cuenta de que estaba devolviendo datos completos de la página en el texto de respuesta y actualizando 'mbody' con esta respuesta.
Tenga en cuenta que el texto de respuesta incluye un nombre de identificación 'mbody' propio para el cuerpo.
Lo que no entiendo es, ¿por qué no se arruinó el sitio web? Estaba pegando una copia de la página completa dentro de una copia ya de la página que está en DOM. Desde entonces, cambié la actualización de Ajax de 'mbody'.innerHTML, a una actualización de etiqueta HTML, ya que estaba devolviendo la página completa.
En caso de que se pregunte si es necesario devolver la página completa, la respuesta es sí, porque las cosas cambian en la página de arriba a abajo, de pantalla a pantalla, así que prefiero devolver HTML completo.
Entonces, ¿Ajax se dio cuenta de que tenía un 'mbody' dentro del texto de respuesta y automáticamente actualizó esa parte con el 'mbody' DOM actual, o realmente colocó una nueva fuente de página html en 'mbody' que ya estaba en DOM?
Solo quiero entender el comportamiento de Ajax en esa situación. Una vez más, mi sitio web era perfecto incluso cuando devolvía la fuente html completa solo para la parte del cuerpo.
// the response is returning an html page, while mbody is the current //DOM body tag's ID mbody.innerHTML = this.responseText; //i later set the response to update the entire html; pseudo example htmltag.innerHTML = this.responseText;La función del sitio web fue perfecta de cualquier manera, pero al incluir una actualización de página completa en el cuerpo de la actual, simplemente no veo cómo eso no causó problemas o destruyó el diseño o algo así.
Estoy trabajando en un sitio web y uso Ajax para actualizar el cuerpo por nombre de identificación ('mbody'). El sitio web funciona según lo previsto, pero luego me di cuenta de que estaba devolviendo datos completos de la página en el texto de respuesta y actualizando 'mbody' con esta respuesta.
Será más fácil depurar más tarde (y también menos tráfico de red) si el código del lado del servidor devuelve solo los valores para actualizar. El uso de JSON también podría proporcionar menos dolores de cabeza porque tiene su propio formato al que se puede acceder fácilmente mediante Javascript sin ningún trabajo adicional en un protocolo de formato.
En cuanto a esta parte:
En caso de que se pregunte si es necesario devolver la página completa, la respuesta es sí, porque las cosas cambian en la página de arriba a abajo, de pantalla a pantalla, así que prefiero devolver HTML completo.
Puede guardar la "posición de desplazamiento y" de la página, antes de la llamada ajax, y luego, después de volver a renderizar, restaurar ese desplazamiento y. Pero nada de esto es necesario si simplemente cambias aquellas partes del dom que necesitan cambiarse, en lugar de todo.