Beispiel: Gehen Sie zu Ihrer Facebook-Seite, scrollen Sie am Ende der Seite, Facebook lädt mehr Pinnwand-Posts asynchron . Oder klicken Sie einfach auf ein Bild in Ihrer Pinnwand. Der Bilddialog (mit Kommentaren und größerem Bild) wird ebenfalls asynchron geladen. (Sie können die GET-Anfragen mit Firebug sehen).
Aber wenn Sie auf die Registerkarte Firefox schauen, sehen Sie den Lade-Indikator, genau wie bei einem Postback.
Ich weiß, dass dies erreicht werden kann, indem man IFrame
benutzt und seine src ändert. Genauso wie iGoogle . Aber ich bin mir nicht sicher, ob Facebook einen IFrame verwendet, um zusätzliche Pinnwand-Posts zu laden. Gibt es einen anderen Weg, dies zu erreichen?
Update : Mit "ladender Indikator" meinte ich keinen AJAX-Indikator.
Wie schon erwähnt, ändert sich die Browser-Anzeige (die auf der linken Seite einer Registerkarte, die uns anzeigt, ob die Seite geladen wird) zum Laden, als wäre es ein Postback.
Es kann mit einem iframe gemacht werden. Kurz gesagt, Sie hängen einen versteckten iFrame an:
%Vor% Es muss eine Seite laden, die nicht geladen wird. Möglicherweise auf der Website-eigenen Domain, da der Browser tatsächlich waiting for domainname.com
in der Statusleiste anzeigt.
In der Datei domainname.com/loading/index.php
setzen Sie:
Und entfernen Sie den iframe, wenn Sie fertig sind:
%Vor%Es ist nicht ideal, wenn man bedenkt, dass dies eine zusätzliche Anfrage ist. Ein paar Gründe:
über Slow-Loading-Technik
über Ссылка
Ich habe dafür eine jQuery-basierte Bibliothek entwickelt, die in einigen Situationen eine brauchbare Lösung sein sollte (self-origin) und in einigen Desktop-Browsern erfolgreich ausgelastete Indikatoren auslösen könnte (zumindest modern Chrome und Firefox, und seltsamerweise auch IE8 aber wahrscheinlich nicht IE9, und definitiv nicht Safari oder die meisten mobilen Browser).
Im Grunde verwende ich den iframe-Ansatz, um "busy" -Anzeigen auszulösen, aber ohne künstlich eine separate "blockierte" Seite zu treffen: Stattdessen verwendet er nur einen benutzerdefinierten $ .ajaxTransport, um einen versteckten iframe zu durchlaufen und dann den JSON Antwort zurück. Das Ergebnis ist, dass der Browser Ladeanzeigen anzeigt, die in direktem Zusammenhang mit der Anfrage stehen, die Sie ausführen: keine zusätzlichen HTTP-Anfragen. Sie können im Grunde nur das Plugin installieren und dann entscheiden, welche AJAX-Anfragen laut sein sollen und welche nicht, nur indem Sie den Parameter dataType ändern.
Als Nebenbemerkung ist die Tatsache, dass das Laden von Inhalt in iframes KEINE UI-Rückmeldung an den Benutzer in Safari und IE9 auslöst, einfach bizarr .
Tags und Links ajax browser xmlhttprequest loading