¿Cómo creo un formulario como los comentarios de Facebook y hago que llegue al final de la cola sin tener que volver a cargar la página?

Cuando la página 1 muestra los comentarios preexistentes, ¿supongo que está iterando sobre algún código que genera este HTML en el back-end?

Divida ese fragmento de código y pase los datos relevantes durante ese ciclo inicial, y luego llame ese mismo código a través de AJAX cuando cree la nueva publicación. En un pseudocódigo php-ish horriblemente abusivo, su back-end se vería así:

función rendercomments () {

$ a-random-array =

para cada uno en una matriz aleatoria {
render-comment-function (a-random-array [‘comment_text’], a-random-array [‘comment_author’], etc.)

}

} // fin de la función de redactor de comentarios (se llama cuando se procesa la página completa por primera vez)

función newcomment () {

$ newcomment = render-comment-function (& _ POST [‘comment_text’] $ _POST [‘comment_author’], etc.)
return $ newcomment

}

Cuando el usuario envía el nuevo comentario, llame a la función newcomment () a través de ajax y la respuesta debe ser el nuevo html que necesita agregar a su página. Use jQuery append para agregarlo al final del div que contiene todos los comentarios.

Otra solución es enviar el comentario a través de ajax y hacer que escriba el comentario en la base de datos, pero que JS tenga toda la representación del nuevo comentario en la página. Obtendrá un beneficio de rendimiento, pero aumentará su costo de mantenimiento cuando cambie la función de representación de comentarios (ya que estará en JS y en el idioma de fondo que elija), no optaría por esto en para mantenerse SECO.