我正在寻找 MODX getChunk() 替代方案,主要是因为它在输出很多次时似乎真的很慢。当我在一个片段中使用它一次时,我几乎无法注意到它的速度,但如果它在循环中使用,那么每一秒都很重要。
作为图库的一部分,我每页输出约 1300 张图像 100 张,它需要:
- 6-7 秒,当输出放入一个块 $output .= $modx->getChunk('chunkname');
- 输出纯 HTML 时 2-3 秒
有谁知道使用块输出图像查询结果的更快替代方法?
我正在寻找 MODX getChunk() 替代方案,主要是因为它在输出很多次时似乎真的很慢。当我在一个片段中使用它一次时,我几乎无法注意到它的速度,但如果它在循环中使用,那么每一秒都很重要。
作为图库的一部分,我每页输出约 1300 张图像 100 张,它需要:
有谁知道使用块输出图像查询结果的更快替代方法?
你的块是什么样的?
您可能会考虑放弃 getChunk() 调用并仅内联您的 html:
$output = '';
foreach ($images as $img) {
$output .= '<li><a href="'.$img['path'].'" alt="'.$img['name'].'" /></li>';
}
return $output;
是的,是的,这是不好的做法,但是当面对替代方案花费两倍以上的时间时,这并不是一个糟糕的优化。
更多的架构层面还有另一种解决方案 - 1300 张图像在一个页面上加载是巨大的!
根据您的设计,为什么不加载前 20 - 30 个并实现某种无限滚动,当用户开始滚动时通过 ajax 加载其余部分(大约 20 个)。
这将减轻服务器的负载,节省带宽,提供更快的用户体验。并绕过缓慢的 getChunk 调用。