我有兩個單身:JavaScript/jQuery中的內存泄漏在哪裏?
搜索 - 執行搜索功能
主題 - 主題(搜索結果)
var Search = new function() {
this.GetTopics = function() {
var query = $("#globalSearch").val();
$.ajax({
url: 'Search/GetTopics',
dataType: 'json',
data: { query: query },
success: function (result) {
var links = $("<ul />")
.click(function (event) {
Search.OpenTopicContent(event);
});
$.each(result.Topics, function (key, value) {
links.append(
Topic.FormatTopic(value.Name, value.Id, value.Rank)
);
});
$("#searchResult").empty();
$("#searchResult").html(links);
}
}
}();
這是主題單的介紹:
var Topic = new function() {
this.FormatTopic = function (name, id, rank) {
var li = $("<li />")
.attr("id", id)
.addClass("{rank:" + rank + "}")
var topicName = $("<p />")
.append(name)
.addClass("tName");
return li.append(topicName);
}
}();
這裏是電話
$("#searchButton").click(function() { Search.GetTopics() });
因此,Search.GetTopics()必須格式化主題列表並將它們呈現在div #searchResult中。
的主題數量可以100左右
問題是每個搜索調用增加內存使用1-3Mb。它發生在IE8和Firefox中。
這是一個帶有長時間運行腳本的RIA,因此限制內存使用非常重要。
問題在哪裏?我如何優化代碼,重構?以這種方式使用單身人士是否聰明?
在FFX」,並內存使用情況下去你從承載這些內容的頁面導航離去後? – DashK 2010-09-23 09:26:46
不,如果我刷新頁面,內存幾乎相同的大小,沒有變化。它看起來像記憶保存所有的對象。 – podeig 2010-09-23 09:34:11