Ваш самый простой самый быстрый способ иметь одно страницу веб -приложения без единой строки кода JavaScript.
Живая демонстрация
Демонстрация - это просто статические файлы, вы можете разместить этот каталог в корне документа вашего сервера или просто ввести следующую команду, которая запустит простой HTTP -сервер на порту 8000, затем укажите свой браузер на http: // localhost: 8000/index.html
python -m SimpleHTTPServerel - DOM -элемент$target - объект jQuery target элемента DOMwhere может быть один из: closest , inside или doc , что означает весь документhow может быть одно из: prepend , append или 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 >Вы можете определить
data-toggleajax-load - извлеченный текст, содержание HTML или чистые данные и применить его к цели (ы)ajax-ops -получает json op-кодыajax-modal * требует расширенияdata-target - селектор для применения извлеченного контента к немуdata-url (которые иногда могут быть заменены href или data-refresh-url )data-template - шаблон, который будет использоваться для отображения чистых данныхdata-format - может быть text , html или jsondata-how - может быть одним из: prepend , append или replaceШаблоны - это функции, которые принимают объект json и возвращают HTML, вы можете использовать любой шаблонный двигатель, но мы предлагаем руля
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 .content:firstonsubmit="return ajax_ops.submit_form(this, params);"params необязательныparams.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 необязательныparams.whereparams.base_elementajax_ops.load и принимает его параметры, подобно 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
Лицензировано по лицензии Apache, версия 2.0 («Лицензия»); Вы не можете использовать эту работу, кроме как в соответствии с лицензией. Вы можете получить копию лицензии в файле лицензии или по:
http://www.apache.org/licenses/license-2.0
Если не требуется применимый закон или не согласен в письменной форме, программное обеспечение, распространяемое по лицензии, распределяется по основам «как есть», без каких -либо гарантий или условий, явных или подразумеваемых. См. Лицензию для конкретного языка, регулирующих разрешения и ограничения по лицензии.