Cita:
Iniciado por dashtrash El problema no es que tengas que retrasar la salida HTML.
El problema es que estás pidiendo dos cosas distintas, y las tratas del mismo modo.
Una posible forma de hacerlo, es en el enrutador.
Si el path /a/b/c genera una pagina HTML, o una respuesta AJAX, lo especificas en el enrutador, e incluyes las cabeceras, o index, o lo que sea necesario.
Otra posibilidad (peor) es indicarlo via GET.Si existe un parametro "output=xxx", aplicas la salida xxx (json, etc,etc), lo cual implica unas cabeceras , controladores,etc
Y, mi consejo es: no presupongas que la salida es HTML.
Eso lo he intentado, el problema está en que tal cual el módulo recibe el html lo devuelve al navegador. En otras palabras: pienso que en el momento que un proceso PHP se encuentra con HTML lo devuelve al navegador y no hay forma de controlar esa salida.
Y lo he visto porque al generar el HTML con el controlador del front-end (el HTML que va dentro del body lo divido en el navegador y todo lo demás) y cargarlo en el cuerpo del HTML me devuelve primero el navegador, que es lo primero que genera el controlador, luego me devuelve la pagina en si misma y luego abajo del todo queda el cuerpo principal del HTML y las cabeceras con el body.
Eso es un despropósito a nivel semántico, aunque sí se aplican las reglas CSS y se enlazan los documentos .js
Por eso la manera de controlar la salida es primordial.
De hecho no tenía problema hasta que vi que sucedía esto y más adelante comencé a incluir AJAX, pude ver que en la salida había cabeceras y eso depurarlo en JSON es una tarea que no debería hacer, porque las cabeceras y otras tags no deberían aparecer.
No sé si me explico bien y si me estás entendiendo
dashtrash.
Edito:
pateketrueke gracias por tu idea, voy a investigar a ver si la puedo aplicar y cómo quedaría. Pero quedo abierto a más sugerencias.