0
我有一個fiddle(注意:通過JSONP訪問近2k文件)。它有一個由兩個和三個字母組成的加載的小單詞表,它們被加載到一個數組中。然後使用Array.prototype.filter
進行過濾。這工作。170k物品陣列沒有正確處理
然後我的網頁開始下載Enable1單詞列表(大多數遊戲都使用單詞列表)。在這一點上,我的過濾器函數結束了一個空數組,而不是預期的105個字。
我可以證實的是,之前和之後,
- 我的單詞列表有應顯示在同一起跑線字(
aa
), - 名單分別有1091分172820的話
- 所有字都是小寫字母,並且沒有周邊空間
- 加載時,唯一的過濾標準是「只有兩個字母」
- 控制檯上沒有錯誤
- 有一個100MB的(25%)增加了小提琴的頁面的RAM使用,我的系統有剩餘
這裏是我的代碼35%的RAM。
function VM() {
var self = this;
self.characters = ko.observable(2);
self.words = ko.observableArray(document.getElementById("words")
.innerHTML.split(/\s+/g).slice(1, -1)
.map(function (word) {
return word.toLowerCase();
}));
self.possible = ko.computed(function() {
var letters = self.letters(),
starters = self.startsWith(),
enders = self.endsWith(),
characters = self.characters();
return self.words().filter(function (word) {
return word.length === parseInt(characters);
})
.filter(function (word) {
if (enders === "") return true;
for (var i = enders.length; i >= 0; --i) {
if (word.slice(-1) === enders[i]) return true;
}
return false;
})/* other filtering code */;
});
}
ko.applyBindings(app = new VM);
$.getJSON('http://anyorigin.com/get?url=https://scrabble-dictionary-search.googlecode.com/svn-history/r6/trunk/src/main/resources/enable1.txt&callback=?', function(data){
app.words(data.contents.split("\n"));
console.log(app.words().length);
});
這是什麼原因造成的?我怎樣才能使它與小列表一樣工作?
好的。它[現在有效](http://jsfiddle.net/f2cQ5/8/)。謝謝 :-) – FakeRainBrigand