今天再看Djangobook的中间件的时候,发现他的机制跟ZendFramework的插件机制是差不多的。所以就写了这个插件。
高级点的浏览器都是支持gzip压缩的,所以,可以将文本文件进行gzip压缩,然后发送给浏览器,浏览器会自动解压它们。这样可以大大减少文件的size。虽然,这个过程可以通过服务器来解决,但对服务器的控制要求挺高的。
基本原理是使用dispatchLoopShutdown钩子。这个钩子是在dispatch完成后调用的,所以,如果正确使用response对象来输出的话,这里就可以做许多事情。比如:使用php的gzencode函数对页面进行gzip压缩。现在这个插件还是初级版本,但基本原理就是这样,也是对plugin的一个说明。
Firefox2+LiveHTTPHeaders测试通过。