0

ジオコーディングのために 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

等々...

4

0 に答える 0