Как сделать такое взаимодействие с сайтом, как, например, на Behance?
Смысл в чем:
Когда мы открываем какой то проект, то он открывается в этом же окне, без перезагрузки страницы, в лайтбоксе. То-есть по сути вся страница открывается в лайтбоксе. Но при этом в адресной строке меняется URL. Но если открыть тот же проект в новой вкладке (например через crtl+клик, или скопировать-вставить ссылку), то откроется отдельная полноценная страница. Но при этом другие взаимодействия с сайтом (будь то редактирование поста, комментирование и т.д., вообщем те действия, которые не требуют отдельной страницы, работают по принципу SPA). То, есть, по сути, сайт ведет себя как SPA+MPA одновременно.
Как и на чем это делать (объясните пожалуйста саму логику, или может где то есть уже по этой теме статьи)?
А Вконтакте не так себя ведёт ? Почему все замечают SPA ajax приложения где угодно но только не под носом.
На чём угодно это делается.
URL меняется через браузерное API History. Когда вы кликаете и открывается модальное окно (то что вы называете лайтбоксом) в него грузиться только часть страницы без head , которую нужно отобразить, если вы кликаете и открываете в новой вкладке то грузиться вся страница целиком со всеми скриптами и стилями но вставляется контент который должен отобразится бы в модальном окне.
Любое спа приложение должно так же работать по моему мнению.
Логика... когда вы кликаете левой кнопкой мыши то отправляете серверу ajax запрос, с каким нить кастомным header чтобы дать понять серверу что это ajax запрос и нужно вернуть только контент, который потом вставляете в модальное окно.
Когда вы открываете ссылку в новой вкладке то этот заголовок не передаётся, и сервер понимает что нужно отдать всю страницу с контентом. Как то так
Под чьим носом? Вы так говорите, как будто бы я обязан не только пользоваться, но еще и замечать, как ведет себя Вконтакте. При том, что в моей стране он заблокирован на государственном уровне. Но вы этот сценарий даже не рассматривали...