Всем привет. Сейчас имею интимные отношения с задачкой по переводу одного проекта в формат SingePageApplication. Т.е. чтобы весь контент абсолютно доставлялся клиенту без перезагрузки страницы. Учитывая, что проект довольно большой и с сложившейся структурой и функционалом, особенно на бэкэнде, некоторые проблемы приходится решать раком. В частности столкнулся вот с какими граблями и никак не могу их обойти:
для того, чтобы аяксом нормально обрабатывать не только действия связанные с жамканьем на ссылки, но и события браузера "вперед/назад" был добавлен от такой кусочек кода:
window.onpopstate = function( e ) {
e.preventDefault();
var returnLocation = history.location || document.location;
singlePage.switchToPage( returnLocation.pathname );
}
Проблема в том, что он срабатывает не только при переходе вперед/назад, но и при первой загрузке по прямой ссылке. Т.е. если мы тупо переходим в новой вкладке на какой-то адрес проекта, этот код все-равно отрабатывает. Вот сижу и пытаюсь придумать как от этой ненужности избавиться. Может кто подскажет что-нибудь дельное?