Aslında bir kitap gibi bir dizi sayfa olan bir html uygulaması geliştiriyorum. Bu uygulamada, sayfalar arasında çeşitli JavaScript değişkenlerini saklamak istiyorum. Sayfalar, yer imleri, vb. Gibi şeyler düşünün. Bu uygulama HTTP üzerinden görüntülendiğinde, eski tarayıcılar için globalStorage (globalStorage, userData, vb.) Geri dönüşleri ile localStorage kullanmayı planlıyorum.
Ancak, örneğin bir CD'den görüntüleniyorsa, dosyalara "file: //" üzerinden erişilirse, bu işlem tamamen bozulur. Çoğu (tüm değilse) localStorage çözümlerinin dosya protokolü altında çalışmadığı görülüyor. Çerezler, "file: //" altında bir seçenek değildir.
JavaScript dosyalarının html sayfalarında "file: //" ile görüntülendiklerinde nasıl kalıcı hale getirileceğine dair herhangi bir fikir var mı?
Sadece mevcut kullanıcı oturumunda mevcut olması gerekiyor. Çerçeveleri kullanmak istemiyorum, ancak henüz başaramamak için başka bir yol düşünemiyorum.
İşyerindeki bir arkadaşım, tek bir pencerenin / oturumun sayfaları arasında veri depolamak için window.name kullanma uygulamasını paylaşarak bu sorunla bana yardımcı oldu.
Benzer bir uygulama (ve yöntemle ilgili tartışma) burada bulunabilir: http://ajaxian.com/archives/whats-in-a-windowname
Bu yöntem üzerinde yaptığım ön testler çok umut verici görünüyor. Bunu, aşağıdaki tarayıcılarda dosya protokolü (masaüstünden yükleme sayfası, a.k.a. - "dosya: \") altında test ettim. Hepsi üzerinde çalıştı!
- IE 6
- IE 7
- IE 8
- IE 9
- FF 3.6
- FF 4
- Chrome 11
- Opera 10
- Safari 4
Henüz ne kadar veri depolayabileceğiniz konusunda henüz bir test yapmadım ama internets 2 MB'lik bir değer üzerinde anlaşıyor gibi görünüyor.
Kaynaklar, bağlantılar, daha fazla bilgi
Webkit'te (Chromium 12.0.742.21 dev-m) dosya protokolü üzerinde localStorage, benim için iyi çalıştı.
Gecko'da rapor ve yakında geliştirilmelidir.
Bir geçici çözüm bile bulabilirsiniz, ancak Chrome gece yapımını kullanarak geliştirmenizi öneririz. Dolayısıyla, gelecekte localStorage'a geri taşıyarak zaman kaybetmeyeceksiniz.