我通过
AJAX调用反复从服务器获取
JSON对象.随着时间的推移,浏览器的内存使用量会增长(尝试使用Chrome,Safari,Firefox).使用Chrome的堆快照,我发现时间戳字符串没有引用.如果我拍摄一系列快照,我会看到字符串的数量不断增加.
$(function() { var latestTimestamp = 0; function fetchData() { $.get("/parameter?format=json&since=" + latestTimestamp,gotData) } function gotData(data) { latestTimestamp = data['timestamp']; setTimeout(fetchData,250); } fetchData(); });
其他说明:
>我正在使用jQuery 1.7.1.编辑:刚试过1.6.2和1.4.2,同样的问题.
> JSON对象中的时间戳实际上是整数,而不是字符串.那么累积的字符串可能是临时值?
>从AJAX请求中删除latestTimestamp可以阻止泄漏.
>更快的setTimeout(20ms)会导致泄漏更快.我认为快速超时可能是罪魁祸首,所以我把它减少到250毫秒,但这没有用.
解决方法
一旦你完成了数据[],你可以摆脱它:
function gotData(data) { latestTimestamp = data['timestamp']; delete data; setTimeout(fetchData,250); }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。