Heim > Web-Frontend > js-Tutorial > pjax: js-Bibliothek, die Ajax und pushState kombiniert

pjax: js-Bibliothek, die Ajax und pushState kombiniert

伊谢尔伦
Freigeben: 2016-11-22 13:49:33
Original
1136 Leute haben es durchsucht

Es ist sehr hilfreich, Ajax und PushState für die spätere Verwendung zu kapseln. Dieser Artikel ist eine Einführung in Pjax (Ajax PushState).

Einführung

Pjax ist eine Kapselung von Ajax PushState, sodass Sie die PushState-Technologie sehr bequem verwenden können.

Unterstützt sowohl Caching als auch lokale Speicherung. Die lokalen Daten können beim nächsten Besuch direkt gelesen werden, ohne dass ein weiterer Besuch erforderlich ist.

Und die Anzeigemethode unterstützt die Animationstechnologie. Sie können die systemeigene Animationsmethode verwenden oder die Animationsanzeigemethode anpassen.

Derzeit wird nur eine JQuery-basierte Version bereitgestellt, und in Zukunft werden Qwrap, Tangram und andere Versionen hinzugefügt.

So verwenden Sie

, um jquery.pjax.js auf Ihrer Seite bereitzustellen. Sie müssen den Link von pjax zum Binden verwenden (Sie können die URL einer externen Domain nicht binden). Zum Beispiel:

$('a').pjax({
    container: '#container', //内容替换的容器
    fx: 'fade', //展现的动画,支持默认和fade, 可以自定义动画方式。
    cache: true, //是否使用缓存
    storage: true, //是否使用本地存储
    titleSuffix: '' //标题后缀
})
Nach dem Login kopieren

Ereignisse

Im Allgemeinen hoffen wir alle, bei der Verwendung von Ajax einen Ladeeffekt zu erzielen. Pjax selbst bietet diese Funktion nicht, stellt jedoch zwei verwandte Ereignisse bereit . Wenn Sie eine solche Funktion benötigen, können Sie diese im Event implementieren.

start.pjax wird aufgerufen, bevor pjax ajax die Anfrage sendet

end.pjax wird am Ende von phax ajax aufgerufen

damit Sie den Ladeeffekt im anzeigen können Das Ereignis start.pjax wird im Ereignis end.pjax ausgeblendet. Beispiel:

$('#container').bind('start.pjax', function(){
    $('#loading').show();
})
$('#container').bind('end.pjax', function(){
    $('#loading').hide();
})
Nach dem Login kopieren

Browser-Unterstützung

Nur ​​Browser, die die Schnittstelle „history.pushState“ unterstützen, verwenden $.support.pjax, um festzustellen, ob der Browser sie unterstützt.

Wenn der Browser diese Funktion nicht unterstützt und die pjax-Methode aufruft, wird tatsächlich nichts unternommen und der Standard-Link-Antwortmechanismus wird weiterhin verwendet

Was das Backend tun muss

Ähnlich wie bei Ajax kann das Backend bei asynchronen Anfragen keine öffentlichen Inhalte zurückgeben.

Es wird also eine Schnittstelle benötigt, um festzustellen, ob eine Pjax-Anfrage gestellt wird. Beispiel: PHP kann aus der folgenden Implementierung lernen

function gplus_is_pjax(){
    return array_key_exists('HTTP_X_PJAX', $_SERVER) && $_SERVER['HTTP_X_PJAX'] === 'true';
}
Nach dem Login kopieren

Laden Sie den Quellcode herunter

pjax ist Open Source und der Code befindet sich unter https://github.com/welefen /pjax. Jeder ist herzlich willkommen, es zu besuchen und herunterzuladen.

Andere

Tatsächlich ist die Kapselung dieser Klasse von https://github.com/defunkt/jquery-pjax entlehnt

Caching, lokale Speicherung und Animation hinzugefügt an ihn und andere Funktionen angepasst und einige Parameter wurden optimiert.


Verwandte Etiketten:
Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage