Когда я нажимаю «Понравилось» под постом в Instagram, появляется всплывающее окно со списком людей, которым понравился этот пост. Каким-то образом он также меняет URL-адрес с www.instagram.com
на www.instagram.com/p/<some random alphanumeric text here>/liked_by/
. Как вы видите, URL-адрес изменился без перезагрузки страницы, и там также нет #. Как это делается?
У меня есть опыт работы с .NET, но я не в курсе последних веб-технологий, и этот вопрос не зависит от технологий, потому что я не знаю, какие технологии использует Instagram, но не стесняйтесь указать мне правильное направление, и я исследуйте эквивалент .NET того, что происходит.
Я думаю, вы ищете метод history.pushState
, он позволяет вам отправить URL-адрес в историю пройденных страниц и изменит ссылку на URL-адрес на значение, которое вы передали. В приведенных вами примерах это будет так:
history.pushState({}, "some title", "/p/<some random alphanumeric text here>/liked_by/")
Он принимает как относительные, так и абсолютные пути.
Все это делается через javascript на стороне браузера, я не думаю, что вы можете сделать это без javascript. Если вы хотите проверить API истории, вы можете проверьте это здесь.
Ах, просто для любопытства, вот какие фреймворки используют Angular и React, вы можете проверить здесь: github.com/angular/angular/… и github.com/ReactTraining/react-router/blob/master/packages/…
Спасибо, это было очень полезно.
Этот ответ может помочь - stackoverflow.com/questions/824349/…