JEŚLI NAPRAWDĘ POTRZEBUJESZ UŻYWAĆ AJAX ...
Spotkałem się z przypadkami, w których obsługa załadunku nie była właściwym wyborem. W moim przypadku podczas drukowania za pomocą javascript. W rzeczywistości istnieją dwie opcje użycia stylu AJAX do tego:
Rozwiązanie 1
Użyj danych obrazu Base64 i usługi obrazu REST. Jeśli masz własną usługę internetową, możesz dodać skrypt JSP / PHP REST, który oferuje obrazy w kodowaniu Base64. Jak to jest przydatne? Natknąłem się na nową, fajną składnię do kodowania obrazu:
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhE..."/>
Możesz więc załadować dane obrazu Base64 za pomocą Ajax, a następnie po zakończeniu zbudować ciąg danych Base64 do obrazu! Świetna zabawa :). Polecam skorzystać z tej witryny http://www.freeformatter.com/base64-encoder.html do kodowania obrazu.
$.ajax({
url : 'BASE64_IMAGE_REST_URL',
processData : false,
}).always(function(b64data){
$("#IMAGE_ID").attr("src", "data:image/png;base64,"+b64data);
});
Rozwiązanie 2:
Oszukaj przeglądarkę, aby użyła jej pamięci podręcznej. Daje to przyjemną funkcję fadeIn (), gdy zasób znajduje się w pamięci podręcznej przeglądarki:
var url = 'IMAGE_URL';
$.ajax({
url : url,
cache: true,
processData : false,
}).always(function(){
$("#IMAGE_ID").attr("src", url).fadeIn();
});
Jednak obie metody mają swoje wady: pierwsza działa tylko w nowoczesnych przeglądarkach. Drugi ma problemy z wydajnością i opiera się na założeniu, w jaki sposób będzie używana pamięć podręczna.
okrzyki, will