7

Chrome 19で奇妙なバグに遭遇しました。pushStateをサポートする完全なAJAXWebサイト(すべての非外部リンクはAJAXリクエストを介して開かれます)を実装しました。HTMLスニペットをAJAXでJSON形式で送信します。

外部リンクを介してサイトを離れてから戻ると、ChromeはそのURLのキャッシュデータをレンダリングします。問題は、完全なWebページではなく、JSONコンテンツをキャッシュして表示することです。

これは、次の手順で再現できます(更新:それ以来、WebサイトのAJAX機能を削除したため、このバグは表示されなくなりました):

  1. http://beta.mirtes.cz/を開きます
  2. 2番目の日付のリンクをクリックします(「すべてが奇妙な電子メールで始まった」の横にある2012年16月6日)。このページ(現在http://beta.mirtes.cz/it-all-began-with-a-strange-e-mailにいます)はAJAXを介してロードされます。
  3. 「すべてが奇妙な電子メールで始まった」をクリックします。外部のWebサイトにリダイレクトされます。
  4. ページが完全に読み込まれたら、Chromeで[戻る]をクリックします。

Cache-Control:no-cacheを使用してすべてのAJAX応答を送信しようとしましたが、効果はありません。

Firefox12は問題なく動作します。

4

1 に答える 1

7

回避策がありました-追加のダミーGETパラメーターを使用してAJAXリクエストを実行します-?ajax=1。このようにして、ブラウザは通常のHTMLコンテンツとJSONの違いを認識できます。ユーザーに影響はありません。パラメーターはFirebugでのみ表示されます。

于 2012-06-16T22:13:58.233 に答える