Windowsサイドバーのガジェットを作成しました。これは本質的に、それが数ヶ月間実行されるミニチュアウェブページであることを意味します。Windowsサイドバーガジェットのメモリリークを特定、修正、閉鎖する方法はありますか?
数週間後にサードパーティのガジェットを格納するsidebar.exeプロセスのメモリ使用量(ワーキングセット)が数百メガバイトに達します。
メモリリークの原因を特定する方法がない場合、私は単純にそれが噂のXMLHttpRequestクロージャの問題であると仮定します。私の場合、私は非同期にそれをやっていません。ですから、JAXではなく、A JAXだと思います。ウェブヒット関与
javascript関数:それは今までにメモリリークの原因となる可能性のような
function FetchXML(method, url)
{
var xmlHttp;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{ // Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
throw "XMLHttp not supported"
}
}
}
xmlHttp.open(method, url, false);
xmlHttp.send(null);
if (xmlHttp.status != 200)
{
throw "Server returned status code "+xmlHttp.status.toString();
}
if (xmlHttp.responseXML.parseError.errorCode != 0)
{
throw "Error in returned XML: "+xmlHttp.responseXML.parseError.reason;
}
var responseXML = xmlHttp.responseXML;
xmlHttp = null;
return responseXML;
}
これは見ていますか?
私は実際の閉鎖なしに私は正方形に戻っていることを恐れる。
Try Catch文全体を "xmlHttp = new XMLHttpRequest();"だけで置き換えることができます。ガジェットの表示にはIEエンジンのみが使用されます。 – ZippyV