我有一段工作代码可以联系 nominatim 进行地理编码。这是通过跨域请求完成的。对于每个请求,我都会创建一个独特的回调函数。我在 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
等等...