0

Stackoverflow を使用しているときに、これまでに訪れた質問が異なる色でマークされていることに気付きました。次に、スタックオーバーフローがこれをどのように検出するかを考え始めました。

スタックオーバーフローだけでなく、さまざまなサイトで使用されている可能性があるため、誰かが使用するアルゴリズムを教えてもらえますか?

おそらく、彼らは質問番号を私の Cookie に保存しており、Cookie データを解析した後、私が訪れた質問を言うことができます。しかし、私が多くの質問をした場合、このアプローチは可能ですか?

アップデート

誰もが言及しているように、これはブラウザーのプロパティであるため、問題は、どのようにして多くのリンクを記憶しているのか、どのようなアルゴリズムまたはデータ構造を使用して保存しているのかということです。

4

1 に答える 1

4

実際、訪問したリンクを記憶しているのはユーザー エージェント (ブラウザなど) です。その後、サイトはCSSを使用して好みに合わせてスタイルを設定できます。

ユーザー エージェントは通常、未訪問のリンクを以前に訪問したリンクとは異なる方法で表示します。CSS は、それらを区別するために疑似クラス「:link」と「:visited」を提供します。


更新された質問について。Chromeのソース コードを見ると、データ構造としてある種のハッシュ テーブルが表示されます。

また、リンクが訪問されたかどうかに関係なく、ユーザー エージェントが単に関心がある場合は、URL のフィンガープリント(都市ハッシュなど) を計算し、キャッシュされたフィンガープリントをページで見つかったリンクのフィンガープリントと比較するだけで済みます。 .

1 か月間 10 秒ごとに 1 つの新しい URL にアクセスし、フィンガープリントが 40 バイトを使用すると仮定しても、約 10 メガバイトのメモリしか消費しません。

于 2013-11-02T19:34:21.713 に答える