Tôi đang làm việc theo số deck building application cho trò chơi bài tôi chơi. Tôi đang sử dụng localStorage để lưu và truy xuất các bộ bài. Dường như nó hoạt động hoàn hảo trong Chrome, nhưng trong Firefox nó hoạt động không ổn định.localStorage không đáng tin cậy trong Firefox
Trong FF, mọi thứ dường như hoạt động tốt lúc đầu, boong tàu thậm chí còn lưu thông qua tải lại. Tuy nhiên, nếu tôi thêm một boong thứ hai và tải lại, nó chỉ tìm thấy boong đầu tiên. Nếu tôi xóa boong đầu tiên, nó sẽ không còn tìm thấy gì nữa.
Tất cả tương tác lưu trữ cục bộ nằm trong tập lệnh/vault.js, mà tôi sẽ tạo lại bên dưới. Tôi có làm điều gì sai?
vault = {};
vault.makeKey = function (s) {
return "deck:" + s;
};
vault.friendlyName = function(s) {
if (s.indexOf("deck:") === 0) {
return s.substring(5);
} else {
return s;
}
};
vault.store = function (deck, name) {
if (!window.localStorage) {
alert("This browser doesn't support local storage. You will be unable to save decks.");
return;
}
var key = vault.makeKey(name);
localStorage.setItem(key, deck.export());
};
vault.retrieve = function (key) {
deck.import(localStorage[key]);
};
vault.getDecks = function() {
var keys = Object.keys(localStorage),
out = [],
i,
k,
name = "";
for (i = 0; i < keys.length; i++) {
k = keys[i];
name = vault.friendlyName(k);
if (name !== k && localStorage[k]) {
out.push({name: name, key: k});
}
}
out.sort(function (a, b) {
return a.name > b.name ? 1 : -1;
});
return out;
};
vault.deleteDeck = function (key) {
localStorage.removeItem(key);
};
Về cơ bản, có vẻ như tại một số điểm, các khóa trong localStorage bị 'cố định' vì thiếu cụm từ tốt hơn; localStorage sẽ hoạt động chính xác trong khi tôi thao tác nó, nhưng ngay sau khi tôi làm mới trang, nó dường như hoàn nguyên về trạng thái nào nó đã bị đóng băng.
Bạn có thể tạo bản trình diễn http://jsfiddle.net không? –
Tôi đã đăng liên kết tới ứng dụng trong bài đăng đầu tiên của mình. Đây là một lần nữa: http://asmor.com/anr/ – Asmor
Vâng, nếu nó trong một fiddle, tôi có thể làm việc với mã và kiểm tra những thứ khác nhau. Nó không cần thiết, nhưng nó sẽ làm cho nó nhiều khả năng bản thân mình và một số người khác sẽ tinker với nó để xem nếu chúng ta có thể tìm ra nó. –