jqueryはxmlHttpRequestオブジェクトを自動的に回収しないためメモリがオーバーフローします

759 ワード

これまで気づかなかったことですが、今日はkuibonoの記事を見てよかったです.以下はkuibonoが与えた手動回収xmlHttpRequestオブジェクトのコード断片です.
jqueryのAjaxリクエストのたびにxmlHttprequestオブジェクトが作成されます.理論的には、長接続のリクエストは無限再帰であり、リクエスト数は非常に大きいですが、リクエストのたびに新しいxmlhttprequestが作成され、jqueryはリソースを自動的に回収しないため、メモリオーバーフローを招きます.
jquery APIを表示すると、jqueryには要求完了後コールバック関数(要求成功または失敗後に呼び出される)というcompleteオブジェクトがあります.同時に2つのパラメータXMLHttpRequest,textStatusがある.したがって、リクエストが完了した後、転送されたXMLHttprequestオブジェクトを手動で回収するだけです.コードは次のとおりです.
 
  
$.ajax({
url: "//www.jb51.net",
data: { name: "xxxx" },
dataType: "xml",
success: function (data, textStatus) {
//do something...
},
complete: function (XHR, TS) { XHR = null }
});