Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 复杂表达式引擎模板:可以呈现<=一秒钟?_Php_Mysql_Lamp_Expressionengine - Fatal编程技术网

Php 复杂表达式引擎模板:可以呈现<=一秒钟?

Php 复杂表达式引擎模板:可以呈现<=一秒钟?,php,mysql,lamp,expressionengine,Php,Mysql,Lamp,Expressionengine,据我所知,我已经优化了一个复杂的ExpressionEngine模板,我仍然希望渲染时间不超过1秒,无论是需要进行应用程序级调整还是服务器级调整 讨论中的页面是195个项目的网格,每个项目都有几个一对多的关系(客户、供应商、办公室等),这些关系实际上是可以显示和过滤的。这些关系由Playa维护 未缓存:16.0904秒,50.11MB,5264次查询 应用程序级缓存后:2.0793秒,28.37MB,476次查询 这主要是EE的模板缓存、标记缓存和通道“禁用”参数导致的 这一切都发生在一个拥有5

据我所知,我已经优化了一个复杂的ExpressionEngine模板,我仍然希望渲染时间不超过1秒,无论是需要进行应用程序级调整还是服务器级调整

讨论中的页面是195个项目的网格,每个项目都有几个一对多的关系(客户、供应商、办公室等),这些关系实际上是可以显示和过滤的。这些关系由Playa维护

未缓存:16.0904秒,50.11MB,5264次查询

应用程序级缓存后:2.0793秒,28.37MB,476次查询

这主要是EE的模板缓存、标记缓存和通道“禁用”参数导致的

这一切都发生在一个拥有512MB内存的MediaTemple DV4(LAMP)服务器上,我想它将以这种速度被破坏。生产站点每天的浏览量约为4K

到目前为止,我唯一的想法是只加载特色项目,并异步保存(较大的、最初隐藏的)内容块。我不喜欢这个想法的唯一原因是SEO的潜力。每个项目都有一个详细页面,所以这可能不是一个问题,但似乎这些都是需要索引的有用信息


有没有什么安全的方法,在不攻击ExpressionEngine核心的情况下,将我的最小页面呈现时间降低到不到一秒?我只是把自己设置为失败吗?

这就是异步加载所擅长的。。。如果您担心SEO的影响,请添加一些分页链接,然后在初始化AJAX内容时用javascript隐藏这些链接。超过5k个未缓存的查询是完全不可接受的。由于每天有4k的浏览量,一些人会被破坏缓存的页面浏览量击中,这将是不漂亮的

不管怎样

我的猜测是,缓存后剩下的大部分查询都来自Playa。它提出了很多疑问。将缓存刷新参数直接添加到Playa标记对将进一步帮助您

如果你愿意买一个附加组件来帮忙,我强烈建议你。它将取代所有本机缓存,只需为您收集全部数据,并将其作为文件、数据库或通过一系列其他流行的服务器级缓存机制进行缓存


祝你好运

这就是异步加载所擅长的。。。如果您担心SEO的影响,请添加一些分页链接,然后在初始化AJAX内容时用javascript隐藏这些链接。超过5k个未缓存的查询是完全不可接受的。由于每天有4k的浏览量,一些人会被破坏缓存的页面浏览量击中,这将是不漂亮的

不管怎样

我的猜测是,缓存后剩下的大部分查询都来自Playa。它提出了很多疑问。将缓存刷新参数直接添加到Playa标记对将进一步帮助您

如果你愿意买一个附加组件来帮忙,我强烈建议你。它将取代所有本机缓存,只需为您收集全部数据,并将其作为文件、数据库或通过一系列其他流行的服务器级缓存机制进行缓存


祝你好运

关于AJAX按需加载和主动缓存的建议非常好

如果可能的话,在这里或EE论坛上发布你的模板代码,也许它可以简化

还有一些想法:

  • 删除所有高级条件(改用Mark Croxton的If/Else和Switchee)
  • 使用查询模块或Solpace的超级搜索代替频道条目,然后通过Playa模块标记调用Playa
  • 移除任何嵌入件;使用代码片段或不使用任何内容
  • 删除模板的各个部分,看看是否有特别需要查询的部分

祝你好运

关于AJAX按需加载和主动缓存的建议非常好

如果可能的话,在这里或EE论坛上发布你的模板代码,也许它可以简化

还有一些想法:

  • 删除所有高级条件(改用Mark Croxton的If/Else和Switchee)
  • 使用查询模块或Solpace的超级搜索代替频道条目,然后通过Playa模块标记调用Playa
  • 移除任何嵌入件;使用代码片段或不使用任何内容
  • 删除模板的各个部分,看看是否有特别需要查询的部分

祝你好运

我需要第二个CE缓存,它确实会产生巨大的变化,我已经将8秒的负载降低到0.4。当然,这确实意味着每次缓存重建都会有一个用户受到更长的加载时间的影响,但嘿……谢谢,德里克(和彼得)!CE缓存已经被证明是我的游戏规则改变者,虽然分页回退不起作用(页面功能过滤所有项目),但我没有意识到我可以为Playa指定缓存。我需要第二个CE缓存,它确实产生了巨大的变化,我已经将8秒的负载降至0.4。当然,这确实意味着每次缓存重建都会有一个用户受到更长的加载时间的影响,但嘿……谢谢,德里克(和彼得)!CE缓存已经被证明是我的游戏规则改变者,虽然分页回退不会起作用(页面功能过滤所有项目),但我没有意识到我可以为Playa指定缓存。