SI VOUS AVEZ VRAIMENT BESOIN D'UTILISER AJAX ...
Je suis tombé sur des cas d'utilisation où les gestionnaires de chargement n'étaient pas le bon choix. Dans mon cas lors de l'impression via javascript. Il existe donc en fait deux options pour utiliser le style AJAX pour cela:
Solution 1
Utilisez des données d'image Base64 et un service d'image REST. Si vous disposez de votre propre webservice, vous pouvez ajouter un script JSP / PHP REST qui propose des images en encodage Base64. Maintenant, comment est-ce utile? Je suis tombé sur une nouvelle syntaxe sympa pour l'encodage d'image:
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhE..."/>
Ainsi, vous pouvez charger les données Image Base64 à l'aide d'Ajax, puis à la fin vous créez la chaîne de données Base64 sur l'image! Très amusant :). Je recommande d'utiliser ce site http://www.freeformatter.com/base64-encoder.html pour l'encodage d'images.
$.ajax({
url : 'BASE64_IMAGE_REST_URL',
processData : false,
}).always(function(b64data){
$("#IMAGE_ID").attr("src", "data:image/png;base64,"+b64data);
});
Solution 2:
Incitez le navigateur à utiliser son cache. Cela vous donne un joli fadeIn () lorsque la ressource est dans le cache du navigateur:
var url = 'IMAGE_URL';
$.ajax({
url : url,
cache: true,
processData : false,
}).always(function(){
$("#IMAGE_ID").attr("src", url).fadeIn();
});
Cependant, les deux méthodes ont leurs inconvénients: la première ne fonctionne que sur les navigateurs modernes. Le second a des problèmes de performances et repose sur l'hypothèse de l'utilisation du cache.
acclamations, volonté