web-dev-qa-db-ja.com

ニュースウェブサイトの例Forbes / Zdnetは1つのWebページを別のWebページにシームレスに統合しますか?

例:

ページの下部に到達すると、新しいニュースストーリーが読み込まれ、インターネットブラウザーのURLがこの次のニュースストーリーのURLに変わります。だから私は、ウェブページが次のウェブページをほとんど瞬時に読み込むことができ、ページ間の遅延をほとんど無視できるのかと思っていました。たとえば、次のニュースストーリーのWebページを事前にダウンロードしてから、そのWebページを本当に高速にロードしていますか?

14
zordman

簡単に言えば、ページのクライアント側のJavaScriptコードは、ページの下部に「近づきすぎた」場合にそれを検出し、それが発生するとサーバーに追加のデータを要求します。

技術的になりすぎずに、Webページ全体をリロードしません。代わりに、そのページのJavascriptコードはサーバーに追加のデータを要求し、新しいデータを受信すると、そのデータを現在のページに追加します。変更する必要のないページの部分は完全に変更されません。

これを行う最も近代的な方法は、 HTML5履歴変更機能 を使用することです。これは、これらのサイトが使用しているようです。

25
Ixrec

何が起こっているのかを理解するための大きな鍵の1つは、JavaScriptを使用して、実際にユーザーをリダイレクトすることなく、アドレスバーにURLを設定することです。この動作を確認するには、サポートされているブラウザのコンソールに以下のコードを貼り付けてください。これにより、アドレスバーがhttp://programmers.stackexchange.com/yay.htmlに変更されます。

history.pushState(null,null,'/yay.html')

このアプローチの利点は、ユーザーがストーリーまでスクロールした後にブックマークを付けた場合、ブックマークがユーザーの送信先を認識できることです。 DeviantArtの検索結果の無限スクロールは、この動作の良い例です。

20
Brian