使用jQuery自动完成加载图像

时间:2011-01-05 05:43:22

标签: jquery autocomplete jquery-autocomplete

我正在使用jQuery自动完成插件来显示用户列表以及来自我的数据库的照片。当我在没有用户图像的情况下显示结果时,自动完成功能非常快。但是对于图像,图像需要一些时间来加载和显示。我知道图像会被下载然后显示出来。但是在Facebook中,图像会立即显示。我知道facebook使用高配置服务器来返回值并使用其他一些技术来显示图像。有没有办法可以将我的图像存储在DB或其他可以即时访问的其他地方?我正在使用Web服务以json格式返回值。

2 个答案:

答案 0 :(得分:1)

您可以尝试在加载文本数据后加载图像。 例如,您可以使用带有attr <img class="searchThumb" src="blank.gif"/>的空白图像(img_source)创建结果,其中包含实际图像的网址(<img class="searchThumb" src="blank.gif" img_source="/real_img_url.jpg"/>)。还要向open事件添加功能,以显示图像。

简单示例(这只是示例,我没有测试它)

$(function() {
    function showImages(){
        $(".searchThumb").each(function(){
            $(this).arrt("src", $(this).attr("img_source"));
        });
    }
    $( "#birds" ).autocomplete({
        source: "search.php",
        minLength: 2,
        open: showImages()
    });
});

UPD

$(function() {
    function showImages(){
        $(".searchThumb").each(function(){
            $(this).arrt("src", $(this).attr("img_source"));
        });
    }
    function formatItemFn(row,pos,count,term){
        // Here is formatting like I described before
        if (pos==count) showImages();
    }
    $( "#birds" ).autocomplete({
        source: "search.php",
        minLength: 2,
        formatItem: formatItemFn()
    });
});

答案 1 :(得分:0)