Magento: ¿Minificar la salida de HTML?
templates minify (5)
Idealmente, se debe realizar la minificación antes de que la salida se guarde en la memoria caché para evitar hacerlo con demasiada frecuencia. El mejor lugar en el que puedo pensar es anulando Mage_Page_Block_Html
y agregando la siguiente función a tu nueva clase:
protected function _toHtml()
{
$html = parent::_toHtml();
// MINIFY CONTENTS OF $html HERE
return $html;
}
De esta forma, realiza la acción una vez para toda la página, Magento puede almacenar en caché el valor devuelto de la manera habitual. No funciona individualmente en cada bloque, lo que podría ser menos eficiente.
¿Hay algún archivo en magento donde saldrá todo html?
Quiero minificar toda la salida html.
Magento usa un objeto de respuesta para enviar todos los resultados.
Todos los resultados se agregan a este objeto, y luego se llama a su método sendResponse
.
Si desea alterar el resultado, configure un oyente para el evento http_response_send_before
evento
<!-- in your module''s config.xml -->
<http_response_send_before>
<observers>
<unique_name>
<type>singleton</type>
<class>group/observer</class>
<method>alterOutput</method>
</unique_name>
</observers>
</http_response_send_before>
Y luego en su observador puede obtener y establecer el cuerpo
class Packagename_Modulename_Model_Observer
{
public function alterOutput($observer)
{
$response = $observer->getResponse();
$html = $response->getBody();
//modify html here
$response->setBody($html);
}
}
Si está interesado, este evento se llama en el método sendResponse
de la siguiente clase
app/code/core/Mage/Core/Controller/Response/Http.php
y la salida misma se envía en los métodos sendResponse
y outputBody
de
lib/Zend/Controller/Response/Abstract.php
Tal vez mod_pagespeed de Google? Eso lo haría de manera transparente para usted. +1 para gzip y desinflar de cualquier manera.
siempre puedes usar las funciones ob para obtener el resultado en index.php y luego hacer con el contenido lo que necesites. pero dudo si impulsará tu sitio tanto como habilitando gzip o desinflar
Tal vez alguien que venga aquí encuentre útil esta extensión de Magento: http://www.magentocommerce.com/magento-connect/html-minify-by-jemoon.html