SI REALMENTE NECESITA USAR AJAX ...
Encontré casos de uso donde los manipuladores de carga no eran la elección correcta. En mi caso cuando imprimo vía javascript. Entonces, en realidad, hay dos opciones para usar el estilo AJAX para esto:
Solución 1
Utilice datos de imagen Base64 y un servicio de imagen REST. Si tiene su propio servicio web, puede agregar un script JSP / PHP REST que ofrezca imágenes en codificación Base64. Ahora, ¿cómo es eso útil? Encontré una sintaxis nueva y genial para la codificación de imágenes:
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhE..."/>
Por lo tanto, puede cargar los datos de la imagen Base64 usando Ajax y luego, al finalizar, construye la cadena de datos Base64 en la imagen. Gran diversión :). Recomiendo usar este sitio http://www.freeformatter.com/base64-encoder.html para la codificación de imágenes.
$.ajax({
url : 'BASE64_IMAGE_REST_URL',
processData : false,
}).always(function(b64data){
$("#IMAGE_ID").attr("src", "data:image/png;base64,"+b64data);
});
Solución2:
Engaña al navegador para usar su caché. Esto le da un buen fadeIn () cuando el recurso está en la memoria caché del navegador:
var url = 'IMAGE_URL';
$.ajax({
url : url,
cache: true,
processData : false,
}).always(function(){
$("#IMAGE_ID").attr("src", url).fadeIn();
});
Sin embargo, ambos métodos tienen sus inconvenientes: el primero solo funciona en los navegadores modernos. El segundo tiene fallas de rendimiento y se basa en la suposición de cómo se usará el caché.
aplausos