解決$getJSONはIEブラウザの下でデータキャッシュが現れ、初めてあるバックグラウンドパスにアクセスした後、再びそのパスにアクセスしてバックグラウンドを行かない方法です.
4256 ワード
最近コードを书く时1つの小さい问题に出会って、私は火狐を使って、プロジェクトの中でテスト员はIEを使って、jqueryのgetjson関数でバックグラウンドからデータを取得する时、IEブラウザは自动的にキャッシュを设置して、もしあなたがデータに対して修正を行う时ページをリフレッシュするならば、IEはページであなたの修正したデータを表示しません更新すると、IEブラウザがキャッシュを探して修正前のデータを表示するので、いくつかの方法を試してみましたが、最後にネットでいくつかの資料を調べてやっとIEブラウザの下の問題を解決しました.
例えばIEブラウザで$を使用する.getJSONはデータを削除する操作を実行して、私達は初めてデータを削除する操作を実行して、操作は成功して、私達は2回目あるいは後で再びデータを削除する操作を実行して、操作は成功しなくて、データは削除されていません.原因は$です.getJSONはIEブラウザの下でデフォルトでブラウザキャッシュを使用するため、2回目以降はデータ削除のバックグラウンドメソッドにアクセスしないため、データの削除に成功しません.解決策は次のとおりです.
1.$.getJSONは略記のAjax関数で、$を使用します.ajaxは関数を変更する代わりに解決します.
最初は直接こう書きました
2.要求されたURLの後ろに可変パラメータを設定します(時間でも乱数でも構いません.いつでも可変なパラメータであればいいです).たとえば、次のようにします.
最初は直接こう書きました(「&time=」+new Date().getTime()):
例えばIEブラウザで$を使用する.getJSONはデータを削除する操作を実行して、私達は初めてデータを削除する操作を実行して、操作は成功して、私達は2回目あるいは後で再びデータを削除する操作を実行して、操作は成功しなくて、データは削除されていません.原因は$です.getJSONはIEブラウザの下でデフォルトでブラウザキャッシュを使用するため、2回目以降はデータ削除のバックグラウンドメソッドにアクセスしないため、データの削除に成功しません.解決策は次のとおりです.
1.$.getJSONは略記のAjax関数で、$を使用します.ajaxは関数を変更する代わりに解決します.
$.ajax(webContext+"/ecs/ecs_detachCloudDisk.action?id="+id, function(json){
if(json.success){
Alert(" ("+instanceId+") ("+diskid+") !");
$('#datadisk_list').datagrid("reload");
}else{
Alert(" ("+instanceId+") ("+diskid+") !");
}
});
最初は直接こう書きました
$.getJSON(webContext+"/ecs/ecs_detachCloudDisk.action?id="+id, function(json){
if(json.success){
Alert(" ("+instanceId+") ("+diskid+") !");
$('#datadisk_list').datagrid("reload");
}else{
Alert(" ("+instanceId+") ("+diskid+") !");
}
});
2.要求されたURLの後ろに可変パラメータを設定します(時間でも乱数でも構いません.いつでも可変なパラメータであればいいです).たとえば、次のようにします.
$.getJSON(webContext+"/ecs/ecs_detachCloudDisk.action?id="+id+"&time="+new Date().getTime(), function(json){
if(json.success){
Alert(" ("+instanceId+") ("+diskid+") !");
$('#datadisk_list').datagrid("reload");
}else{
Alert(" ("+instanceId+") ("+diskid+") !");
}
});
最初は直接こう書きました(「&time=」+new Date().getTime()):
$.getJSON(webContext+"/ecs/ecs_detachCloudDisk.action?id="+id, function(json){
if(json.success){
Alert(" ("+instanceId+") ("+diskid+") !");
$('#datadisk_list').datagrid("reload");
}else{
Alert(" ("+instanceId+") ("+diskid+") !");
}
});