第9回 Ajax編(後編):連載:jQuery逆引きリファレンス(6/10 ページ)
jQueryにおいて、Ajax関連操作のコアである「$.ajaxメソッド」についてまとめた、すぐに役立つ9本を一挙公開。
例えば、以下のようなスクリプトはInternet Explorerでは正しく動作しません。これは、[現在時刻]ボタンをクリックしたタイミングでサーバサイド(Current.aspx*)から現在時刻を取得し、ページに反映するコードです。しかし、Internet ExplorerではデフォルトでAjax通信をキャッシュしてしまうため、ボタンを繰り返しクリックしても最新の時刻が表示されないのです。
* Current.aspxのコードは「非同期に読み込んだコンテンツをそのままページに反映させるには?」を参照してください。
<script type="text/javascript">
$(function() {
// ボタン・クリック時の挙動を定義
$('#btn').click(function() {
// Ajax通信を実行
$.ajax({
url: './Current.aspx', // アクセス先のURL
success: function(data) {
$('#result').html(data);
} // 通信成功時には応答データを<div>要素に反映
});
});
});
</script>
……中略……
<form>
<input type="button" id="btn" value="現在時刻" />
<div id="result"></div>
</form>
このHTMLを実際にブラウザで開く
この問題は、$.ajaxメソッドのcacheパラメータにfalseを指定することで回避できます。
// Ajax通信を実行
$.ajax({
url: './Current.aspx',
cache: false,
success: function(data) {
$('#result').html(data);
}
});
これによって、Internet Explorerでもキャッシュが行われなくなり、最新のデータをサーバ側から取得するようになるためです。
Copyright© Digital Advantage Corp. All Rights Reserved.