pjax:ajax和pushState结合的js库
Nov 22, 2016 pm 01:49 PM将ajax和pushState封装下,供后面使用还是非常有帮助的。本文就是对pjax(ajax+pushState)的一个介绍
介绍
pjax是对ajax + pushState的封装,让你可以很方便的使用pushState技术。
同时支持了缓存和本地存储,下次访问的时候直接读取本地数据,无需在次访问。
并且展现方式支持动画技术,可以使用系统自带的动画方式,也可以自定义动画展现方式。
目前只提供了基于jquery的版本,后续将增加基于qwrap, tangram等版本。
如何使用
将jquery.pjax.js部署到你的页面中,将需要使用pjax的a链接进行绑定(不能绑定外域的url),如:
$('a').pjax({ container: '#container', //内容替换的容器 fx: 'fade', //展现的动画,支持默认和fade, 可以自定义动画方式。 cache: true, //是否使用缓存 storage: true, //是否使用本地存储 titleSuffix: '' //标题后缀 })
事件(events)
一般情况下使用ajax来获取数据的时候,我们都希望有个loading的效果,pjax本身不提供这个功能,但提供了2个相关的事件。 如果需要这样的功能,可以在事件里实现这种功能。
start.pjax 在pjax ajax发送request之前调用
end.pjax 在phax ajax结束时调用
这样你可以在start.pjax事件里显示loading效果,在end.pjax事件里隐藏loading了。如:
$('#container').bind('start.pjax', function(){ $('#loading').show(); }) $('#container').bind('end.pjax', function(){ $('#loading').hide(); })
浏览器支持
提供了history.pushState接口的浏览器才支持这个功能,$.support.pjax是用来判断浏览器是否支持的。
如果浏览器不支持这个功能而调用pjax方法的话,实际上什么都没做,还是使用默认的链接响应机制
后端需要做的
类似于ajax, 异步请求的时候后端不能将公用的内容也返回。
所以需要一个判断是否pjax请求的接口。如:php可以借鉴下面的实现
function gplus_is_pjax(){ return array_key_exists('HTTP_X_PJAX', $_SERVER) && $_SERVER['HTTP_X_PJAX'] === 'true'; }
下载源代码
pjax已经开源,代码放在https://github.com/welefen/pjax 上,欢迎大家访问和下载。
其他
实际上该类的封装借鉴于https://github.com/defunkt/jquery-pjax
对其增加了缓存、本地存储和动画等功能,并且将一些参数进行了优化。

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Comment résoudre l'erreur 403 rencontrée par la requête jQuery AJAX

Comment résoudre l'erreur 403 de la requête jQuery AJAX

Comment obtenir des variables de la méthode PHP en utilisant Ajax ?

Comment résoudre le problème de l'erreur 403 jQuery AJAX ?

PHP vs Ajax : solutions pour créer du contenu chargé dynamiquement

Comprendre les frameworks Ajax : explorez cinq frameworks courants

Échange de données asynchrone à l'aide des fonctions Ajax

PHP et Ajax : moyens d'améliorer la sécurité d'Ajax
