每一种框架都不是万能的,Drupal优点是够灵活,而大量定制基本上就意味着有大量的模块需要启用,这种情况下保证高性能,基本上只能用层层缓存的思路。
而交互频繁或者登陆用户UI差别很大的网站,就比较难做缓存方案。这个时候使用AJAX会好一些。但AJAX的后端如果用Drupal来实现的话,尤其是Full Load也会有性能问题,在一些并发设置比较少的网站,性能会急剧下降。比如,
你的Apache设置的并发请求的1000
而你的网站当前同时有100人在线,而每个被访问的页面有10个AJAX Full Load请求
那么, (10 + 1)x100 = 1100 > 1000, 就会出现网页打不开的等待现象
因此,一般来说我们需要放弃Full Load的想法,但这样的话你就需要自己写入口,因为Drupal的单一入口架构肯定是Full Load的。
另外你也可以考虑自己写PHP类库实现后端API,或者将数据同步到Solr,然后使用Solr的API,也可以使用Java实现API以获得更好的稳定性和性能,但这种发散的架构对维护是一定的挑战。
Node.js的异步高并发的特性,也是可以对这种类型的网站AJAX后端提供支持的。
另外我要说的是,当网站需要做性能优化时,有可能你的网站已经很牛X了,这时你需要考虑做架构重组或者迁移,而不是一味的在现有的框架里做优化。而如果你的网站还没什么流量,可以不必做过度的设计,根据你预期的流量目标做规划,并且想想降级策略,如果流量超出预期就先降级减压。