Heim > Web-Frontend > js-Tutorial > JavaScript führt die Methode AJAX ein, ein einzelnes Bild zu laden, um den Fortschritt anzuzeigen

JavaScript führt die Methode AJAX ein, ein einzelnes Bild zu laden, um den Fortschritt anzuzeigen

coldplay.xixi
Freigeben: 2021-01-26 10:06:41
nach vorne
2291 Leute haben es durchsucht

JavaScript führt die Methode AJAX ein, ein einzelnes Bild zu laden, um den Fortschritt anzuzeigen

Empfohlenes kostenloses Lernen: js-Video-Tutorial

Beim Surfen im Internet auf Mobiltelefonen sehe ich oft Ladefortschrittsbalken, insbesondere beim Laden von Bildern.

Wir haben den Ladefortschritt mehrerer Bilder überprüft, aber für ein einzelnes Bild, insbesondere wenn das Bild relativ groß ist, ist ein Fortschrittsbalken erforderlich, um dem Benutzer den Ladefortschritt mitzuteilen, was die Benutzererfahrung verbessern kann.

Herkömmliches Laden wird definitiv nicht funktionieren. AJAX-Laden ist ein spezielles progress-Ereignisfortschritt.

Die spezifische Demo ist wie folgt. Erreichen Sie das Ziel:

Laden Sie ein Bild und zeigen Sie den prozentualen Ladefortschritt an. Zeigen Sie das Bild nach Abschluss des Ladevorgangs an.

HTML-Struktur:

<p id="pro">
    0%
</p>
<p id="box">
    内容加载中。。。
</p>
Nach dem Login kopieren

JavaScript:

let box = document.getElementById("box");
let pro = document.getElementById("pro");
let req = new XMLHttpRequest();
req.open("get","images/1.png" , true);
req.responseType = "blob";   // 加载二进制数据
req.send();

req.addEventListener("progress",function(oEvent){
    if (oEvent.lengthComputable) {
        var percentComplete = oEvent.loaded / oEvent.total * 100;
        pro.innerHTML = percentComplete + "%" ;
    } else {
        // 总大小未知时不能计算进程信息
    }
});
// 加载完毕
req.addEventListener("load",function(oEvent){
    let blob = req.response;    //  不是 responseText
    pro.innerHTML = "图片加载完毕";
    box.innerHTML = `<img src = ${window.URL.createObjectURL(blob)} >`;
});
Nach dem Login kopieren

Was hier erklärt werden muss, ist:

req.responseType = "blob";
Nach dem Login kopieren

Setzen Sie den Anforderungsdatentyp auf den Blob-Typ. Binary Large Object ist ein größeres Binärobjekt, das zum Laden von Nicht-Text-Daten verwendet werden kann. Diese Demo lädt ein Bild.

Daher handelt es sich beim Akzeptieren von Rückgabedaten nicht um Antworttext.

window.URL.createObjectURL(blob) generiert den URL-Pfad des Objekts basierend auf dem Blob-Objekt. Auf diese Weise können Sie die durch den Blob dargestellten Ressourcen (Bilder, Videos, Audios usw.) im Browser sehen

Das obige ist der detaillierte Inhalt vonJavaScript führt die Methode AJAX ein, ein einzelnes Bild zu laden, um den Fortschritt anzuzeigen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Aktuelle Ausgaben
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage