如果你真的需要使用 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();
});
但是,这两种方法都有其缺点:第一种仅适用于现代浏览器。第二个存在性能故障,并且依赖于如何使用缓存的假设。
干杯,会