หากคุณต้องการใช้ AJAX จริงๆ ...
ฉันได้พบกับเราโดยที่ตัวจัดการ onload ไม่ใช่ตัวเลือกที่ถูกต้อง ในกรณีของฉันเมื่อพิมพ์ผ่านจาวาสคริปต์ ดังนั้นจริงๆแล้วมีสองตัวเลือกในการใช้สไตล์ AJAX สำหรับสิ่งนี้:
โซลูชันที่ 1
ใช้ข้อมูลภาพ Base64 และบริการรูปภาพ REST หากคุณมีเว็บเซอร์วิซของคุณเองคุณสามารถเพิ่มสคริปต์ JSP / PHP REST ที่ให้ภาพในการเข้ารหัส Base64 ตอนนี้มีประโยชน์อย่างไร ฉันเจอไวยากรณ์ใหม่ที่ยอดเยี่ยมสำหรับการเข้ารหัสภาพ:
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhE..."/>
ดังนั้นคุณสามารถโหลดข้อมูลภาพ Base64 โดยใช้ Ajax และเมื่อเสร็จแล้วคุณจะสร้างสตริงข้อมูล 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);
});
Solution2:
หลอกเบราว์เซอร์ให้ใช้แคช สิ่งนี้จะช่วยให้คุณ fadeIn () ดีเมื่อทรัพยากรอยู่ในแคชเบราว์เซอร์:
var url = 'IMAGE_URL';
$.ajax({
url : url,
cache: true,
processData : false,
}).always(function(){
$("#IMAGE_ID").attr("src", url).fadeIn();
});
อย่างไรก็ตามทั้งสองวิธีมีข้อเสีย: วิธีแรกใช้ได้กับเบราว์เซอร์สมัยใหม่เท่านั้น ส่วนที่สองมีข้อบกพร่องด้านประสิทธิภาพและขึ้นอยู่กับการสันนิษฐานว่าจะใช้แคชอย่างไร
ไชโย