Ver Mensaje Individual
  #4 (permalink)  
Antiguo 23/03/2015, 08:15
Avatar de guardarmicorreo
guardarmicorreo
 
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 12 años, 1 mes
Puntos: 84
Respuesta: Evitar que PHP envie el HTML antes de tiempo

Cita:
Iniciado por dashtrash Ver Mensaje
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.
__________________
Ayúdame a hacerlo por mi mismo.