即使没有处理或存储返回的数据,也会发生这种情况。
以下是上下文:
HTML包含
<table border="0" cellpadding="2" cellspacing="0" class="formPanel" style="width:100%">
<tbody><tr>
<td>
<span style="vertical-align:middle;">
<span>Date:
<input id="datePicker" name="DatePicker" maxlength="10" value="20130128"/>
</span>
<input id="go-btn" style="width:80px;" type="button" value="Go"/>
</span>
</td>
</tr>
</tbody></table>
JavaScript是
$(function(){
// Extracted the previously anonymous function to reduce memory used to store "compiled code"
function processData(data) {
//process data
}
// Extracted the previously anonymous function to reduce memory used to store "compiled code"
function clickHandler() {
var keys = ['googlechrome','firefox','opera', 'webkit', 'ie'];
for(var i = 0; i < keys.length; i++) {
/* Previously a method call
*/
var date = $("#datePicker").val().replace(/-/g, ''),
// A local URL, That returns a max of 5MB.
url = "/get_usage?date="+date;
url += '&user_agent=' + keys[i];
url += "&min_count=250";
$.getJSON(url, processData);
}
}
$("#go-btn").click(clickHandler);
});
只需点击一下,收到的数据的实际大小约为10MB,但当我检查Chrome的任务管理器中的内存列超过30MB时,&amp;一段时间后,垃圾收集大约4MB(不知道这是不相关的)。
我怀疑jQuery的getJSON方法,因为删除它&amp;将阵列大小增加十倍,整体内存没有太大差异。
答案 0 :(得分:0)
正如我在问题中提到的,在删除包含$ .getJSON方法的行时,我的内存没有泄漏。我猜这是Erik提到的JSONP调用的问题。感谢您的回复