私は最近Javascriptで作業していますが、実際にはそれほど堪能ではありません。メモリ使用量が着実に増加しているように見えるので、私はメモリリークと思われるものを追跡しようとしています。これを引き起こしている可能性があるために私が持っている1つのアイデアは、内部関数の使用です。私はXMLHTTPRequests(および他の関連オブジェクト)を扱うときに内部関数を使用し、これらの要求は数秒ごとに作成されます。私はおそらく私はそれを適切に閉じていないと感じる。だから、もしこれが問題であると誰かが私に教えてくれれば、内的関数の1つのためのコードがあります。 (これはIEの文脈の中で、わかりませんし、他のブラウザで起こっているかどうかもわかりません)。Javascript内部関数のメモリリーク?
me.request.open("GET", url, true);
me.request.onreadystatechange = onReadyStateChange;
me.request.send();
function onReadyStateChange() {
if (4 == me.request.readyState) {
if (me.request.status == 200) {
var results = me.request.responseText;
var resultsString = me.request.responseText.toString();
me.stringOperation(resultsString);
me.request.abort();
me.request = null;
} else {
me.request.abort();
me.request = null;
}
}
}
me.onreadystatechangeをnullに変更しても問題ありませんか? – user535617
しかし... XMLHttpRequestオブジェクトは本当にDOMのことではありませんか?それとも、IEには実際のDOM要素と同じ問題があると言っていますか? (私は無知から尋ねます) – Pointy
@Pointy彼はたぶんJSオブジェクト(組み込みオブジェクト)/ブラウザオブジェクト(ホストオブジェクト)を意味していました。一部の人は、すべてのホストオブジェクトをDOMオブジェクトとして参照します。 (ブラウザ環境では少なくとも) –