问题描述
|
我认为每个人都会遇到这个问题。在我的页面中,我使用jQuery,jQuery UI和许多插件,通常所有这些插件(包括UI)都有自己的独立CSS。此外,我习惯于按模块将我的CSS分隔在不同文件中。
因此,现在每当我加载一个页面时,它都会向服务器请求至少30个额外资源,包括
styles
和scripts
,而不忘记PHP的includes
和requires
。在速度较慢的PC上(通过这种方式,我说的是具有1GB Ram的系统,这应该比我认为的绰绰有余),即使在本地服务器中,我的页面也很慢。
现在,这确实是不可接受的,我需要认真的建议来解决此问题。
解决方法
如果最终用户访问该网站的速度很慢,则需要弄清楚原因。
您可以测量服务器端的内容执行所需的时间-这可能是瓶颈。
服务器的总体延迟可能是另一个瓶颈。
您可以衡量客户端的内容执行所需的时间-如果您注意到客户端性能下降,则很容易成为瓶颈。
减少不必要的Javascript的数量以及您要包括的东西。如果您注意到客户端的性能下降,则很可能是Javascript引起了问题。您是否需要整个JQuery库?您是否全部使用了?插件呢?
您的服务器如何配置?您是否正在为PHP使用缓存?
您能否将CSS从文件加载合并为一个?您需要所有这些吗?
您还应该研究对require和
include
的使用,因为它们会影响性能。
,是的明确地。在性能和模块化开发之间始终存在平衡。交付给客户端的理想xhtml可能包含CSS资源的单一组合和缩小版本,而js资源则包含相同的版本,但是在开发中使用它会很棒。
为此,我要做的工作是使用一个脚本,该脚本在重新启动操作期间运行在部署服务器上,该操作执行xpath查询以在我的视图模板中找到所有的css引用。然后,它知道在服务器上的位置,找到它们,然后合并为一个,将它们最小化,然后在文件系统中保存一个合并的文件。然后,脚本重写视图模板以仅引用该单个资源。很好,因为您不必在开发中考虑它,但仍可以在部署时获得性能。我仍然没有解决未使用的CSS引用的问题....
您可以看到的一件事是mod_pagespeed:
http://code.google.com/speed/page-speed/docs/module.html
,您正在混淆不同的内容:includes
和requires
不会导致其他请求,也不会明显降低您的页面速度。
除此之外,您的页面是否运行缓慢(可能是JavaScript过多?)还是加载速度慢(请求过多?)。在第二种情况下,要做的第一件事是在一个css和一个js文件中组合不同的css和js文件。
,尝试CSS和JS的GZIP压缩。您只需要几个htaccess文件,当它加载到浏览器中时,它将压缩整个网站中的所有css和js。