2010-05-10 16 views
6

Koruması gereken bir DB olmadığı ve kullanıcıların kimlik doğrulaması yapması yararlıdır. Profesörüm, Bespin'u kullanan yeni bir araştırma projesini dönüştürmem için bana sordu ve kullanıcıların yaptığı bir araştırmanın parçası olarak bir kod düzenleyicideki hataları hesaplar.localStorage (HTML5) içindeki dosyaları kaydetmek için uygun veri yapıları?

Amaç, MySQL'den HTML5 localStorage'u tamamen kullanmaya dönüştürmektir. Kodunda kazmak biraz zaman alabilir olsa da, bu kadar zor görünmüyor.

Soru:
Dosyaları ve durumu (imleç ve etkin dosyanın son yerleşimi) kaydetmem gerekiyor. another stackoverflow thread'daki önerileri uygulayarak bunu zaten yaptım. Ancak içeriğinizin içeriği nasıl kullanacağını düşünmek ister.

Benim şu anki çözüm> JavaScript nesnelerle çözüm gibi HashMap:

files = {}; 
// later, saving 
files[fileName] = data; 

Ve sonra bazı recommendations

localStorage.setObject("files", files); 
// Note that setObject(key, data) does not exist but is added 
// using Storage.prototype.setObject = function() {... 

Şu anda da sayısal kimliği çeşit kullanarak düşünüyorum kullanarak localStorage basınız. Bu yüzden isimler, hashmap'daki anahtarı yeniden adlandırma olmadan değiştirilebilir. Nasıl çözüldüğü konusundaki düşünceleriniz nelerdir ve bunu başka bir şekilde yapar mısınız? JSON.stringify() kullanarak bunları saklamak ardından

var files = {}; 
// Add loads of data 

Ve:

cevap

8

Şu anda en iyi yol nesneleri kullanarak nesneleri değişmezlerinde şeyi saklamak için olduğu bazı okuma ve araştırma yaptıktan sonra karar verdik

localStorage.setItem('myFiles', JSON.stringify(files)); 

Bu, iyi uygulama yapar çünkü saklanması ve erişilmesi kolay olan büyük miktarlarda bilgi depolar. Ayrıca

+1

JSON burada cevaptır localStorage.setItem(key, value) fonksiyonunu ... – gnarf

+0

görünüşte sadece bir nesne gibi davranabilirsiniz kullanmak localStorage yılında anahtar-değer çifti bilgileri ekleyerek ve ne zaman basit bir şekilde kullanmaya ne zaman kafa karıştırıcı girmesini engeller: 'localStorage ['myFiles'] = JSON.stringify (dosyalar)' veya 'localStorage.myFiles = JSON.stringify (dosyalar)' –

İlgili konular