2011-12-09 22 views
1

C#/ ASP.Netで動的に生成されたKMLファイルを使用して、OpenLayersベースのマップビューで作業しています。ファイルの背後にあるコードでは、私は次のようになりますKMLファイルの呼び出しにクエリ文字列パラメータを定義します。IE8がキャッシングするのを防ぐ方法OpenLayersマップデータ(ASP.Net)

/layouts/KmlDataGenerator.aspx?vaccination=2 &コホート= 2003パーセント7c2010 &セックス= 3つの& x軸= Kommuneの& landsdel = 100 &ショー=地図&データ型=ワクチン接種& extendedfilters =

falseこのURL文字列は、以下のOpenLayersをJSのコード内のリテラルKmlFileNameに挿入されます。

vector = new OpenLayers.Layer.Vector("KML", { 
     projection: wgs84, 
     strategies: [new OpenLayers.Strategy.Fixed()], 
     isBaseLayer: false, 
     protocol: new OpenLayers.Protocol.HTTP({ 
      url: '<asp:Literal ID="KmlFileName" runat="server"/>', 
      format: new OpenLayers.Format.KML({ 
       extractStyles: true, 
       extractAttributes: true 
      }) 
     }) 
    }); 

問題は、IE8以前では何かがキャッシュされているようだ - 私はCTRL + F5を押すか、手動でIE8でキャッシュをクリアしない限り、何も表示されない。問題はIE9、Firefox、またはChromeには存在しません...

私は、ページのブラウザのキャッシュを防ぐためにメタタグを追加しようとしました。また、ランダムに生成された文字列を各javascriptの呼び出しが何も役立ちません。

アイデアをお寄せください!

答えて

0

私は同僚の助けを借りて、それを解決しました。地図投影を扱う数行のJavaScriptコードをdocument.ready()関数に移動しなければならないことが判明しました。私はなぜこれがIE8でのみ必要で、他のブラウザでは必要ではないのだろうか。しかし、とにかく、それは問題を解決しました。

+0

興味深いことに、あなたはどのファイルを移動しましたか? –

0

私は.ashxファイルに同じ目的でこれを使用しています

public override void ProcessRequest(HttpContext context) 
{ 
    context.Response.Cache.SetNoStore(); 

    // Execute code 

    context.Response.Write(<content>); 
} 
関連する問題