2010-09-24 21 views
7
Ben XMLHttpRequest üzerinden bir görüntüyü yükleyen bir web sitesi oluşturmak isteyen

(). (Ben kullanıcıya% progressbar temsil etmek istiyorum, çünkü XMLHttpRequest)XMLHttpRequest JS Görüntü yükleme

Benim Kod:

var req = new XMLHttpRequest(); 

req.addEventListener("progress", onUpdateProgress, false); 
req.addEventListener("load", onTransferComplete, false); 
req.addEventListener("error", onTransferFailed, false); 
req.addEventListener("abort", onTransferFailed, false); 

req.open("GET", "image.png", true); 
req.send(); 

function onUpdateProgress(e) { 
if (e.lengthComputable) { 
var percent_complete = e.loaded/e.total; 
if (Math.round(percent_complete*200)>=20) { 
        $("#progress").animate({ 
        width: Math.round(percent_complete*100) 
      }, 0); 
     } 
     } 
} 

function onTransferFailed(e) { 
    alert("Something went wrong. Please try again."); 
} 

function onTransferComplete(e) { 
    //Problem 
} 

Benim sorunum ben şimdi yüklenir görüntüyü göstermek için nasıl bilmiyorum olduğunu. Ben Sen VERİ URI'lerini kullanarak yapabilirsiniz

+0

+1 iyi soru! İkili bir görüntü alıyorum ve resmin nasıl gösterildiğini bilmiyorum. – Topera

cevap

2

... Herkes bana :) Teşekkür yardımcı olabilir umut, ama hepsi mevcut tarayıcılarla bu işi yapmak zor.

Önbelleğe alma seçenekleri doğru şekilde ayarlanmışsa, iki kez daha iyi bir şekilde yükleyebilirsiniz: önce AJAX isteğinizi kullanarak, görüntü tarayıcı tarafından önbelleğe alındıktan sonra, normal görüntü işlevlerini kullanarak başka bir kez daha. İkinci kez, resminiz sunucudan tekrar alınmayacak, ancak tarayıcı önbelleğe alınmış dosyayı kullanacak ve resmi neredeyse anında gösterecektir.

+0

Bu işe yarıyor gibi görünüyor. Ancak tarayıcının gerçekten sadece bir kez resmi yüksek sesle görmek zor. - Sunucu ayarları doğru electerious.com/share/Web%20Inspector.png – tobi

+0

@tobias: Örneğin Safari WebInspector bunu iki kez gösteriyor? Resmin gönderildiği başlıkları gösterebilir misiniz? –

+0

Sanırım öyle. İşte test sitesi: electerious.com/share/loading.html – tobi

İlgili konular