1

絶対に通常のリンク (以下のようなもの) をクリックすると、アクション クラスが 2 回呼び出されるアプリケーションがあります。そして、この動作は IE でのみ発生します。Firefox では、同じリンクをクリックすると、アクション クラスが 1 回だけ呼び出されます。

<a href="FileListAction.do"  title="Load"  target="_parent" id="c">Load</a>

これは古いアプリケーションで、Struts 1.3 と Tiles を使用しています。なぜこれが起こっているのか、および/またはどのようにトラブルシューティングできるのか考えていますか?

4

1 に答える 1

0

IE がリンクをプリフェッチしてプリロードしている可能性があります。

これを確認するには、リクエストを受信した時刻を記録します。ページを読み込み、10 秒ほど待ってから、リンクをクリックします。ログ エントリ間の差が ~10 秒の場合、それはプリフェッチです。

ブラウザは、ユーザーがクリックする可能性が高いリンクをプリロードするため、結果はブラウザのキャッシュからすぐにサーバーに送信されます。

HTML5 では、 を定義することでこれを明示的にしていrel="prefetch"ます。この属性と値は、、、およびタグに設定aできareaますlink

要素の<link rel="prefetch" href="url" />または<link rel="next" href="url" />のページを確認してください。HEADまた、Aタグのrel属性も確認してください。

MicroSoft は、これを IE 11 で正式にサポートすると主張しています。

これらはすべて、ページがユーザーに対してより応答性が高いように見えるようにすることを目的としています。これが崩壊する可能性があるのは、取得されるページがキャッシュ可能でない場合です。これにより、ユーザーがクリックしたときにページが再度取得されます。これは、結果がキャッシュ可能であることを確認するための手順を実行することで改善できます。適切なキャッシュ ヘッダーを設定します。Private1 人の受信者を対象としたコンテンツのキャッシュ コントロールがあります。プライベート キャッシュ (通常はユーザーのブラウザー) にのみ保存されます。

Content-lengthさらに、ページがヘッダーを提供しない場合、ページはキャッシュ可能と見なされない場合があります。

于 2013-09-18T11:49:17.967 に答える