从缓存加载动态生成的图像

时间:2010-11-29 01:18:10

标签: php jquery caching

你好,当图像上传到服务器时,我有这个回调函数,然后我想把这个图像显示为PHP脚本生成的缩略图

'onComplete'  : function(event, ID, fileObj, name,response, data) {
          var newfile = '/admin/includes/image.php?filename='+name+'&maxw=150';
          $('#uploaded_images').append('<li class="'+ID+'"><img src="/site_images/ajax-loader.gif"" alt="" /></li>').fadeIn('fast');
          $.get(newfile, function(){
                $('.'+ID).fadeOut().empty();
                $("."+ID).append('<img src="'+newfile+'" alt="" />').fadeIn();


});

“.get”jquery函数应该只在加载图像后显示 img 标记(确实如此)问题是当我打印img标记时图像再次加载。这实际上只会淡化图像的“容器”。图像将仅在加载时继续显示且没有任何效果。 有没有办法我可以安排脚本使用“get”缓存的图像,或者只在直接加载图像时实际打印所有内容?

谢谢

1 个答案:

答案 0 :(得分:1)

而不是$.get(),请使用图片的.load()事件,如下所示:

$("<img />").load(function() {
  var img = this;
  $('.'+ID).fadeOut(function() { $(this).html(img); }).fadeIn();
}).attr("src", newfile);

这样做是因为我们正在创建的图像元素完成加载,淡出.ID元素,当淡入淡出完成时,将内容设置为<img>元素(.html(elem).empty().append())的快捷方式,然后将其淡入。