ウェブページにGoogleマップがあり、geoxml3を使用してレイヤーを(多くの目印を付けて)解析します。更新時に古いgeoxml3レイヤーを削除します
新しい.kmlファイルを取得するために10秒ごとにjqueryをトリガーするタイマーがあります。しかし、新しいレイヤーを解析する前に、古いレイヤーを削除したい。
質問:削除/破棄の正しい方法は何ですか?
私はgeoXml.hideDocument();
があることを知っていますが、レイヤーを隠すだけで、レイヤーを削除/破棄することはできません。 (以下hideDocument()の実装である)
refreshMap() - 前の層を非表示にし、これは動作しますが、私の心配は、それがデータごとに10を引っ張っ続けるならばということであっても、新たな層に
$.ajax({
url: url,
dataType: 'json',
type: 'get',
contentType: 'application/x-www-form-urlencoded',
data: "",
success: function (data, textStatus, jQxhr) {
if (data['success'] == 1) {
if (geoXml)
geoXml.hideDocument();
var src = data['kml'];
geoXml = new geoXML3.parser({
map: map,
suppressInfoWindows: false,
singleInfoWindow: true,
infoWindow: infowindow,
zoom : false
});
geoXml.parse(src);
geoXml.showDocument();
}
},
error: function (jqXhr, textStatus, errorThrown) {
console.log(errorThrown);
}
});
を表示ページが1時間開いている場合は、遅れが発生しますか?理由は、オーバーレイが実際には破壊/削除されていないため、それらはまだメモリ上にあり、単に参照を失うだけです(新しいレイヤを参照するため)。
更新
私は、オンラインでいくつかの情報を見つけた私は、この実装を心配する必要はありませんように、と思われます。
「Javascriptがガベージコレクトですので、あなたは オブジェクト自体を削除する必要はありません - もはやそれを参照してください に方法がないとき、彼らは削除されます。」