如何获得图像的快速ajax响应

时间:2012-11-24 09:16:06

标签: php ajax image jquery optimization

我有一个大型数据库来从Ajax响应中获取动态图像。 我怎么能快速闪电呢

图像采用逗号分隔形式,例如

img4.jpg,img3.jpg,img5.jpg,img7.jpg,img11.jpg,img1.jpg,img2.jpg,img3.jpg,img6.jpg,img8.jpg < / p>

我的php代码。

function childImgsGrid(){

        $parentImgId = $_POST['parentImgId'];

        $query = mysql_query("select child_imgs_id,child_imgs from parent where parent_img_id = $parentImgId") 
                or die(mysql_error());

        $result = mysql_fetch_array($query);
        $arrayOfImages = explode(",", $result['child_imgs']);
        $i=1;
        foreach($arrayOfImages as $nameOfImage){

            echo "<li><a href='#lookbook' ><div class='view'><img src='images/slide/".$nameOfImage."'></a></li>";

        }
    }

和Ajax

var parentImgId = $anchor.attr("id");

                var dataString = 'queryString=childImgsGrid'+'&parentImgId='+parentImgId; 

                var arrayOfImages = new Array();

                $glob.ajax({
                    type: "POST",
                    url: "ajaxtemplate.php",
                    data: dataString,                   
                    cache: false,
                    success: function(response) {
                        $glob('#grid').html(response);
                    }
                });

1 个答案:

答案 0 :(得分:1)

这是一般性的非常广泛的主题,但我会尝试对此事进行一些说明。

  1. 图片的优化版本

    与Facebook一样,添加图像后,您可以使用后台作业来创建图像的低质量版本。请求图像时,将显示此低质量图像,同时在背景中加载原始高质量图像。完成加载后,只需替换。

  2. 预加载

    如果您知道或了解需要显示哪些图像(在库中预加载下两个或三个图像的常见情况),您可以在没有用户输入的情况下获取它们。因此,当用户打开图像#443时,您将在后台加载#444,#445。

  3. 使用内存商店

    如果数据库记录非常大,并且假设您将文件系统中的图像保存为数据库中的blob,并且回溯基于唯一键(主要或其他),则可以实现memcache或redis等操作这个问题非常快。

  4. Node.js的

    如果图像请求数量变得非常高,请考虑使用像node.js这样的异步服务器响应架构。

  5. 特定的用例和技术将改变上述每一个的实现,但整体概念应该是可靠的。