Votre moyen le plus rapide pour avoir une application Web à une seule page sans une seule ligne de code JavaScript.
Démo en direct
La démo est juste des fichiers statiques, vous voudrez peut-être placer ce répertoire dans la racine du document de votre serveur ou simplement taper la commande suivante qui démarrera un serveur HTTP simple sur le port 8000, puis pointer votre navigateur sur http: // localhost: 8000 / index.html
python -m SimpleHTTPServerel - élément DOM$target - un objet jQuery de l'élément DOM targetwhere peut être l'un des: closest , inside ou doc ce qui signifie un document entierhow peut être l'un de: prepend , append ou replace < a data-toggle =" ajax-load " href =" /posts/today.json " data-target =" .posts " > my link </ a >
< button type =" button " data-toggle =" ajax-ops " > my button </ a >
< div class =" me " data-refresh-url =" /user/me.json " data-template =" user_info " > </ div >
< div class =" posts " data-template =" posts_titles " > </ div >
< div class =" posts " data-template =" full_posts " > </ div >Vous pouvez définir
data-toggleajax-load - Texte récupéré, contenu HTML ou données pures et les appliquer à la (s) cible (s)ajax-ops - Rechets JSON OP-codesajax-modal * nécessite une extensiondata-target - le sélecteur pour y appliquer le contenu récupérédata-url (qui peut parfois être remplacé par href ou data-refresh-url )data-template - Le modèle à utiliser pour rendre les données puresdata-format - peut être text , html ou jsondata-how - peut être l'un de: prepend , append ou replaceLes modèles sont des fonctions qui prennent un objet JSON et renvoient HTML, vous pouvez utiliser n'importe quel moteur de modèle mais nous suggérons le guidon
ajax_ops.flashmsg({html:, text:, type:info|danger, selector:, base_target:$obj, where:closest|inside|''})ajax_ops.flashmsg({text:'not found', type:'danger');ajax_ops.flashmsg.call(this, {text:'not found', type:'danger', selector:'.modal', where:'closest'});self.flashmsg_opts.selector qui est .content:firstonsubmit="return ajax_ops.submit_form(this, params);"params sont facultatifsparams.target=$objparams.cb=function($target, data){}ajax_ops.loads({html: CONTENT, text: CONTENT, data: JSON, template: NAME, el: ELEMENT, how: prepend|append|replace})ajax_ops.load({el:element, url:, how: prepend|append|replace, selector:, where:closest|inside|, })ajax_ops.refresh(element|selector, params)params sont facultatifsparams.whereparams.base_elementajax_ops.load et accepte ses paramètres comme howajax_ops.refresh('.me')ajax_ops.exec_ops([ [op1, selector1, params1], [op2, selector2, params2],.. ])removerefreshloadattr {set:{k:v}, unset:[k1,k2]}class {add:[], remove:[], toggle[]}ajax_ops.ops['my_opcode']=function(el, params){} // register templates
ajax_ops . templates = Handlebars . templates ;
// nice hack
Handlebars . partials = Handlebars . templates ;
// You might want to disable usual links behavior
$ ( 'a[data-toggle]' ) . click ( function ( e ) { e . preventDefault ( ) } ) ; Copyright 2014 Muayyad Alsadi
Licencié sous la licence Apache, version 2.0 (la "licence"); Vous ne pouvez pas utiliser ce travail, sauf conforme à la licence. Vous pouvez obtenir une copie de la licence dans le fichier de licence, ou à:
http://www.apache.org/licenses/license-2.0
Sauf exiger la loi applicable ou convenu par écrit, les logiciels distribués en vertu de la licence sont distribués sur une base «tel quel», sans garantie ou conditions d'aucune sorte, expresse ou implicite. Voir la licence pour la langue spécifique régissant les autorisations et les limitations sous la licence.