Ich habe eine grundlegende Seite mit einer Navigationsleiste oben und einem Wrapper Körper.Zeige Fortschrittsbalken beim Laden von Seiten mit Jquery Ajax in einzelne Seite Website
Wenn ein Benutzer auf einen Navigationslink klickt, wird .load
verwendet, um den Seiteninhalt in das Wrapper-div zu laden.
$(this).ajaxStart(function(){$('.progressbar .bar').css('width','5%');$('.progressbar').fadeIn();});
$(this).ajaxEnd(function(){$('progressbar').hide();});
$('.ajaxspl').on('click',function(e){
e.preventDefault();
var url=$(this).data('url'),
wrap=$('body #wrap');
//clean the wrapper
wrap.slideUp().html('');
//load page into wrapper
wrap.load(url,function(){wrap.slideDown();});
});
Beispiel für Rückgabewert von .load
:
<div>
...content
</div>
<script>$('.progressbar .bar').css('width','30%');</script>
<link href="/assets/css/datepicker.css" rel="stylesheet" />
<script>$('.progressbar .bar').css('width','60%');</script>
<link href="/assets/css/main.css" rel="stylesheet" />
<script>$('.progressbar .bar').css('width','90%');</script>
<script>//blah blah</script>
Wie Sie sehen können, habe ich ein Bootstrap Fortschrittsbalken, die mich auf ajaxstart()
zeigen, und auf der Seite, die ich mich diesen Wert ändern nennen Der Fortschrittsbalken nach dem Laden jedes Elements.
Dies funktioniert gut in Firefox und ich kann die Fortschrittsanzeige sehen, während auf die Seite geladen wird, aber es funktioniert nicht in Chrome oder IE.
Gibt es einen besseren Weg, dies zu tun? Mache ich das richtig oder gibt es eine andere Methode, dies zu tun?
Zum Beispiel $.ajax
Seitengröße in kb erhalten und Fortschrittsbalken im laufenden Betrieb aktualisieren, wie Daten empfangen werden?
Ich versuche etwas Ähnliches wie die Lade-Seite zu erstellen, wenn Gmail geladen wird.
Es ist nützlich, wenn Sie einen http erstellen: // JSFiddle .net – Amir
Was ist deine jQuery-Version? AJAX-Ereignisse sollten erst ab jquery 1.9 an das Dokument angehängt werden. –
yp im using 1.9 – Zalaboza