2011-01-05 55 views
1

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

+0

你存储图像或链接数据库中的图像? – RAMe0 2011-01-05 06:16:03

+0

截至目前,我正在存储指向图像的链接,然后通过指向img标签的src来显示它们。 – Ashish 2011-01-05 06:29:58

回答

1

您可以尝试加载文本数据后加载图像。 例如,您可以创建包含空白图像(<img class="searchThumb" src="blank.gif"/>)和attr 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() 
    }); 
}); 
+0

打开不是自动完成的选项。我也尝试过formatResult。但没有运气。 – Ashish 2011-01-05 09:16:12

+0

@Ashish我刚刚查过[jQuery UI Autocomplit页面](http://jqueryui.com/demos/autocomplete/)选项卡“事件”。自动完成有事件“打开”。来自UI文档的描述:'当建议菜单被打开时触发'。在那里你可以找到使用'open'事件的例子。是的,你是正确的'打开'不是一个选项这是事件。 – RAMe0 2011-01-05 09:33:57

+0

我正在使用jQuery自动完成插件,而不是jQuery UI自动完成。 (http://docs.jquery.com/Plugins/Autocomplete/autocomplete) – Ashish 2011-01-05 09:58:41