フォーブス/ ZdnetなどのニュースWebサイトは、あるWebページを別のWebページにシームレスにマージしますか?


14

例に行く場合:

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


1
Endキーを押し続けると、読み込みプロセスの遅延が表示されます。
-MonkeyZeus

5
より重要な質問は、なぜ彼らがそれをするのということです。

回答:


25

簡単な答えは、ページの下部に「近づきすぎた」ことをページのクライアント側のJavascriptコードが検出し、それが発生するとサーバーにさらにデータを要求することです。

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

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


4
説明にステップがありません。ページにデータを追加するとともに、実際に履歴を変更します。これはあなたの「やっての最も近代的な方法になり、このため、厄介なの種類を」これは実際に答えで言及されません歴史を変更するプロセスを指します。(文法的に、これはページの残りの部分を変更せずに残すか、ページにデータを追加することを意味します。これは通常AJAXで行われ、HTML5履歴変更機能ではできません。)
KRyan

では、URLの変更についてはどうでしょうか。リロードを強制せずにどのように発生しますか?リンク上で、「変更されたページ」(例:)をリロードする/secondとエラーが発生するためです。それはOPのニュースサイトでは起こりません-彼らはあなたがそれを共有できるようにURLを正確に変更します。
OJフォード

@OllieFordは、履歴APIの目的です。history.pushStateそしてhistory.replaceStateあなたは、現在のページから移動することなく、アドレスバーにURLを変更してみましょう。これは、URLフラグメントを変更するという古いトリック(#something)の最新の置き換えです。大きな利点は、歴史APIを使用すると、サーバーが生成に参加できる「実際の」URLをプッシュできることです。クライアント側から。
ホッブズ

うん、いいよ。しかし、私が言ったように、デモは壊れており、混乱しています。
OJフォード

何らかの理由で、私がよく知っていた歴史のデモは、この質問が出たときに完全に壊れていたので、そのリンクは私が見つけることができる最初のものであり、それがまったく機能するように見えました。より良いリンクを提案してください。
Ixrec

20

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

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

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


待ってください、DeviantArtは検索結果に履歴変更を実装しているので、特定のページに実際にリンク/ブックマーク/記録することができますか?それは...かなり何かです。ただし、特定のクエリの特定の結果は特定のページにどのくらいの期間滞在しますか?ブックマークを付けた場合、明日その特定のページに同じ結果が表示されるとは思わないでしょう...これを調査することを忘れないでください。
KRyan

@KRyan offsetは、結果セットに特定の距離をスキップするパラメーターを変更するだけです。デフォルトのソート順は「常に人気」のように見えるため、結果はおそらくある程度安定していますが、ソート順を「最新」に切り替えて人気のあるものを検索した場合は間違いなく安定していません。
ホッブズ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.