ジオコーディングのために nomintim に接続する作業コードがあります。これは、クロス ドメイン リクエストを介して行われます。リクエストごとに、固有のコールバック関数を作成します。これらすべての古いリクエストが DOM インスペクタに「積み重なっている」ことに気付きました。サイトをよりアプリのような動作に変更しているため (したがって、ユーザーは同じページにとどまっているため)、これが問題になる可能性があります。
これらの古いリクエストと変数をクリアするにはどうすればよいですか? DOM をクリアして、この明らかなメモリの浪費を防ぐためです。
$.ajax({
url: 'http://nominatim.openstreetmap.org/search',
type: 'GET',
dataType: 'jsonp',
jsonp: 'false',
jsonpCallback: 'json_callback' + myGeocoder.requestIndex,
data: {
format: 'json',
q: request.term,
addressdetails: 1,
limit: 10,
json_callback: 'json_callback' + myGeocoder.requestIndex
},
beforeSend: function(x) {
if (x && x.overrideMimeType) {
x.overrideMimeType("application/json;charset=UTF-8");
}
},
success: processResult
});
myGeocoder.requestIndex++;
関数を数回使用した後、Firebug DOM インスペクターで次のようにします。
json_callback0 undefined
json_callback1 undefined
json_callback2 undefined
json_callback3 undefined
json_callback4 undefined
json_callback5 undefined
json_callback6 undefined
json_callback7 undefined
json_callback8 undefined
json_callback9 undefined
等々...