如果您真的需要使用AJAX ...
我遇到了一些用例,其中onload处理程序不是正确的选择。以我为例,通过javascript打印时。因此,实际上有两种方法可以使用AJAX样式:
解决方案1
使用Base64图像数据和REST图像服务。如果您拥有自己的Web服务,则可以添加JSP / PHP REST脚本,该脚本以Base64编码提供图像。现在有什么用?我遇到了一个很酷的图像编码新语法:
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhE..."/>
因此,您可以使用Ajax加载Image Base64数据,然后在完成后将Base64数据字符串构建到图像!非常有趣 :)。我建议使用此网站http://www.freeformatter.com/base64-encoder.html进行图像编码。
$.ajax({
url : 'BASE64_IMAGE_REST_URL',
processData : false,
}).always(function(b64data){
$("#IMAGE_ID").attr("src", "data:image/png;base64,"+b64data);
});
解决方案2:
欺骗浏览器以使用其缓存。当资源位于浏览器缓存中时,这为您提供了一个不错的fadeIn():
var url = 'IMAGE_URL';
$.ajax({
url : url,
cache: true,
processData : false,
}).always(function(){
$("#IMAGE_ID").attr("src", url).fadeIn();
});
但是,这两种方法都有其缺点:第一种方法仅适用于现代浏览器。第二个有性能故障,并依赖于将如何使用缓存的假设。
欢呼,将