这是通过ajax调用的脚本:
<?php
require_once '../app/Mage.php';
umask(0);
/* not Mage::run(); */
Mage::app('default');
$cat_id = ($_POST['cat_id']) ? $_POST['cat_id'] : NULL;
try {
$category = new Mage_Catalog_Model_Category();
$category->load($cat_id);
$collection = $category->getProductCollection();
$output = '<ul>';
foreach ($collection as $product) {
$cProduct = Mage::getModel('catalog/product');
$cProduct->load($product->getId());
$output .= '<li><img id="'.$product->getId().'" src="' . (string)Mage::helper('catalog/image')->init($cProduct, 'small_image')->resize(75) . '" class="thumb" /></li>';
}
$output .= '</ul>';
echo $output;
} catch (Exception $e) {
echo 'Caught exception: ', $e->getMessage(), "\n";
}
我只是传递了类别ID,我已将其添加到导航链接上,然后做一些工作,最终只传回该类别中的所有产品图片。
我在拖放build-a-bracelet类型的应用程序时使用它,返回的图像数量有时在500s。所以它在传输过程中非常紧张,有时甚至是10秒左右。
我知道通过某种方式缓存它们会做得很好,只是不确定如何去做。非常感谢任何帮助。
感谢。
-Wes
答案 0 :(得分:0)
从代码的外观来看,您可能已经“缓存”了所选图像的大小。也就是说,Magento不必调用GD来动态调整图像大小。
然而,仍然需要从Apache请求500张图像,无论你做什么,这将是第一次完全痛苦。确保Apache配置为允许浏览器大小缓存诸如JPG之类的媒体很长一段时间,并且您不必在每次加载页面时重新下载图像。
除此之外,您可能希望设计一种策略来使用更少的图像,并仅在需要时请求更多图像。用户不太可能以任何有意义的方式真正关注500张图像。
希望有所帮助!
谢谢, 乔