2011-06-14 5 views
1

更新済み:Founded answer。私自身の回答を7時間以上提出することはできません...コメントを参照してください。jQueryモーダルダイアログを使用してIEをキャッシュするiframeを停止する

次のように私は、ダイアログを開いている:

url = 'edit/MyPage.aspx?appid=3&value=4&' + date.getTime(); 
$('#modalIFrame').attr('src', url); 
$('#modalDiv').dialog('open'); 

のiframeはいくつかのフィールド(チェックボックス、ドロップダウン、テキストエリア)でフォームを持っています。 Chromeでは、すべてが完璧に機能しています。 IEでは、それは非常にをキャッシュしています。シフト+リフレッシュでさえ助けにならない。だから私がダイアログを開いたら、変更を加え、submitを押してから、すべてのデータが正しいようにページを更新してください。しかし、編集ボタンをクリックしてダイアログを開くと、以前のデータです(データはWCFサービスへのajax呼び出しを使用して取得されます)。セッションが満了するまで数時間待っています。

上記のように、ここで私が見つけたトリックを試して、IEをトリックして新しいページだと思ってみました。これは機能しません。 HTMLに

Response.Cache.SetCacheability(HttpCacheability.NoCache) 

と、次のメタタグ::私はまた、iframe内のページのPage_Loadのに次のコードを追加

<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE"> 
<META HTTP-EQUIV="EXPIRES" CONTENT="0"> 

を私は完全にここに迷ってしまいました、任意のアイデアは次のようになります感謝。

+0

わかりましたので、私は自分の質問に答えることはできませんが、... –

+0

わかりました、私はそれはIEでキャッシュされたWCFサービスがわかりました。私には不思議そうだが、私はajaxコールにタイムスタンプを追加し、今は動作する! var date = new Date(); data:{"appid":appid、 "serverid":serverid、 "timestamp":date.getTime()}、 –

答えて

1

私はそれがIEでキャッシュされていたWCFサービスであることを発見しました(私には意味がありませんが、何でも)。私はajax呼び出しにタイムスタンプを追加しました。

data: { "appid": appid, "serverid": serverid, "timestamp": date.getTime() }, 
+1

私はなぜこのように "ハック"する必要があるのか​​知りたいのですが...タイムスタンプを追加することで、同じ呼び出しではないので、強制的に実行することがわかりますが、キャッシュされているのはなぜですか?そうでないことを伝える正しい方法はありますか? – farcrats

+0

私は助けることができましたが、私は動いてきましたが、これはあまり注目を集めませんでした。 –

関連する問題