Если вы идете к примеру:
- http://www.forbes.com/sites/adrianbridgwater/2015/06/12/why-technology-has-to-be-continuous/ ИЛИ
- http://www.zdnet.com/article/if-you-want-those-cool-ios-9-features-its-time-to-buy-a-new-ipad/
Когда вы переходите в конец страницы, загружается новая новость, а URL-адрес в моем интернет-браузере меняется на URL этой следующей новостной статьи. Поэтому мне было интересно, как веб-страница может почти мгновенно загрузить следующую веб-страницу с почти незначительной задержкой между страницами. Например, они предварительно загружают веб-страницу истории Next News, а затем действительно быстро загружают веб-страницу?
End
клавишу, и вы увидите задержку процесса загрузки.Ответы:
Краткий ответ: код Javascript на стороне клиента обнаруживает, когда вы «слишком близко» подходите к нижней части страницы, и запрашивает у сервера дополнительные данные, когда это происходит.
Не становясь слишком техническими, они не перезагружают всю веб-страницу. Вместо этого код Javascript на этой странице запрашивает дополнительные данные с сервера, а затем, когда он получает новые данные, он добавляет эти данные на текущую страницу. Части страницы, которые не нужно менять, остаются полностью неизменными.
Самый современный способ сделать это - использовать функции изменения истории HTML5 , которые, по-видимому, и используются этими сайтами.
источник
/second
), это приведет к ошибкам. Этого не происходит с новостным сайтом OP - они точно меняют URL, чтобы вы могли поделиться им.history.pushState
иhistory.replaceState
позволит вам изменить URL-адрес в адресной строке, не отходя от текущей страницы. Это более современная замена старой уловки изменения фрагмента URL (#something
), с большим преимуществом, заключающимся в том, что API истории позволяет выдвигать «реальные» URL, в которых сервер может участвовать, а фрагмент должен поддерживаться полностью. со стороны клиента.Один большой ключ к пониманию происходящего: через Javascript можно установить URL-адрес в адресной строке, фактически не перенаправляя пользователя. Чтобы увидеть это в действии, вставьте приведенный ниже код в консоль поддерживаемого браузера. Обратите внимание, что это меняет вашу адресную строку на
http://programmers.stackexchange.com/yay.html
.Преимущество этого подхода состоит в том, что если пользователь делает закладки после прокрутки к истории, закладка будет знать, куда отправить пользователя. Бесконечная прокрутка результатов поиска DeviantArt - хороший пример такого поведения.
источник
offset
параметр, который пропускает определенное расстояние в наборе результатов. Поскольку порядок сортировки по умолчанию кажется «популярным все время», результаты, вероятно, несколько стабильны, но определенно нет, если вы переключите порядок сортировки на «самый новый» и выполните поиск чего-то популярного.