Вот еще мысли. я хотел сделать модуль роутера, но на реальном сайте SPA у меня вышло на тупую несколько строчек кода для реализации простой загрузки страниц на AJAX и выполнения каких-то стартовых функций.
Выглядит это примерно так:
<script src="./app/evolution.js?production=1.5.9" id="evolution">
function liveRun() { // restart selectors on ajax or document load
/* animations */
$.dom( '#logotype img','style', ['width:10px','height:10px'] );
$.dom( '#logotype img','animate', ['width:349px:1000:bounce','height:188px:1000:bounce', 'transform: perspective(40px) rotate(360deg,360deg,360deg):900:bounce'] );
$.dom( '#logotype span','style', ['opacity:0'] );
$.dom( '#logotype span','animate', ['opacity:1:3500'] );
/* slider init */
$.rotate('#rotate div', null, 6000);
/* increase and descrease text size if telephone hovered */
$.event('#logotype i', 'mouseover', function() {
$.dom('#logotype i', 'animate', ['transform: scale(1.5,1.5) translateX(-40px):400']);
});
$.event('#logotype i', 'mouseleave', function() {
$.dom('#logotype i', 'animate', ['transform: scale(1,1) translateX(0px):400']);
});
/* scroll top */
$.event('#footer li:last-child a', 'click', function(e) {
e.preventDefault();
$.scroll();
});
/* route ajax path */
$.event('#menu li a, #bottom-menu li:not(:last-child) a', 'click', function(e) {
e.preventDefault();
clearInterval(rotate);
getPageLive(e.target.href, e.target.text);
});
// simple router
function getPageLive(url, title) {
$.ajax(url,'GET', null, 'dom', function() {
$.dom('#shell','del');
$.insert($.dom('body'), this[0].outerHTML);
document.title = title;
window.history.pushState({"pageTitle": title}, "", url);
$.scroll();
liveRun();
});
}
}
liveRun();
</script>
Теперь я задумался над тем, а стоит ли перегружать Фреймворк такой мелочью как роутер если он пишется буквально за 5 минут и вполне нормально работает. Ведь то уже просто подачка тем, кто не хочет и не умеет программировать. С другой стороны нужно бы это сделать.
В будущих версиях будет модуль history, который я назову как-то по типу locations или наподобие.