Это функциональность сервер + клиент
В принципе, это не просто решение javascript, а решение сервер + клиент.Если бы это был asp.net MVC на стороне сервера, у вас была бы главная страница, которая по умолчанию отображала бы частичное представление "home" внутри своей области содержимого.
Все последующие щелчки в верхнем меню инициируют обычную$.get()
на стороне сервера, которая просто возвращает правильное частичное представление и функцию ответа на клиенте:
- добавляет привязку к странице в конце документа
- добавляет возвращенное частичное представление вконец документа
- инициирует щелчок по вновь добавленной привязке на странице
Это объясняет поведение кнопки возврата.
Не видел подобного скриптараньше, но все равно это кажется довольно тривиальным.Я проверил, и не было никакой проверки (хотя она могла быть), был ли загружен тот же контент, и заменил его новой возвращенной версией.Недостатком проверки является то, что пользователь нажимает и щелкает, документ становится очень длинным, использует все больше и больше ресурсов и значительно замедляет страницу.