[jQuery] jQuery Ajax $.getJSON

クロスドメイン環境で Ajax 通信を行う。

JSONP

Load JSON-encoded data from the server using a GET HTTP request.

JavaScript逆引きレシピ jQuery対応
山田 祥寛
翔泳社
売り上げランキング: 187,564

See the Pen jQuery Ajax $.getJSON by DriftwoodJP (@DriftwoodJP) on CodePen.

キャッシュの回避

JavaScript本格入門 ~モダンスタイルによる基礎からAjax・jQueryまで
山田 祥寛
技術評論社
売り上げランキング: 9,381

非同期要求を行う際に if-Modified-Since ヘッダーを追加してキャッシュを回避する。

var d = new Date(1970, 0, 1);
req.setRequestHeader('If-Modified-Since', d.toGMTString());
req.send(null);

jQuery.ajax() 利用時には、cache パラメータを false とする。

$.ajax({
  url: 'json.php',
  type: 'GET',
  cache: false,
  :
});

$.ajax() 以外の場合、以下

$.ajaxSetup({ cache: false });

もしくは、以下とする。

$('*').ajaxSend(function(ev, xhr, opt) {
  xhr.setRequestHeader(
    'If-Modified-Since', new Date(1970, 0, 1).toGMTString());
});

この場合、$('*') は、すべての要素を指定している。

$('*').ajaxSend() は、指定された要素セット全体に対して関連づけられるイベント(イベントリスナ)を表していることから、 グローバルイベント とも呼ばれる。
グローバルイベントを利用することで、特定の要素セットすべてに対して適用すべき処理をまとめて定義できる。
例えば $(':button').ajaxStart( ... ) では、すべてのボタンに対して ajaxStart イベントリスナを登録できる。