0

ページ (カート ページ) に Response.Redirect するサイトがありますが、何らかの理由で、IE8 を使用しているときにそのページに対して Page_Init 関数と Page_Load 関数が呼び出されません。URL バーにカーソルを置いて Enter キーを押しても、まだ呼び出されません。F5 を押すと呼び出されます。別のブラウザー (IE8 モードの IE9 を含む) を使用すると、それらが呼び出されます。トラフィックを検査するために Fiddler2 を実行しましたが、URL バーをクリックして Enter キーを押してもトラフィックは発生しません。

この動作の原因は何ですか? Page_Load を傍受している Javascript および/または更新パネルである必要があるようです。

詳細: サイトは AbleCommerce で、ページはカート ページです。製品選択プロセスをカスタマイズしました。

サイトのテスト インスタンスで問題を再現できるので、カートをロードするカスタム コントロールの Page_Init 関数と Page_Load 関数の両方にブレークポイントを追加しました。IE8 では、IE8 の URL バーにカーソルを置いて Enter キーを押すと、ブレークポイントにヒットしません。他のブラウザでは、ヒットします。IE8 ブラウザー モードで IE9 を実行すると、ヒットします。しかし、IE8 では、更新 (F5) を実行したときにのみヒットします。

これは Javascript または更新パネルの問題であると考えています。Firefox エラー コンソールまたは IE8 に表示される Javascript エラーはありません。

これを引き起こしている可能性のあるものについて何か考えはありますか? または、どのようにトラブルシューティングできますか?

4

3 に答える 3

1

&_=xyz常に新鮮な場所xyz(現在の時刻の文字列など)など、追加のパラメーターを使用してページを呼び出すようにしてください。ページが追加のパラメータで更新されると、ブラウザが積極的にキャッシュするというキャッシュの問題が発生します。

なぜそうなるのか-言うのは難しい。フルキャッシュを有効にしてURLを呼び出した後、ブラウザが内部でキャッシュ設定を取得し、ページをコールバックしないというjqueryの問題である可能性があります。

于 2012-05-08T19:45:21.203 に答える
0

まったく同じ問題がありました...IEのキャッシュオプションが重いためです。したがって、ランダム変数を使用する代わりに、すべての応答キャッシュを false に設定し、すべてのポストバックを次のように設定します。

protected void Page_Load(object sender, EventArgs e)
{
        Response.Cache.SetNoStore();
        Response.Cache.SetCacheability(HttpCacheability.NoCache);
        Response.Cache.SetExpires(DateTime.Now);
        Response.Cache.SetLastModified(DateTime.Now);
        Response.Cache.SetAllowResponseInBrowserHistory(false);
        ....
}

出典: Firefox では Page_Load が呼び出されたが、IE では呼び出されなかった

于 2012-11-19T20:35:31.130 に答える