Soru Dosya Protokolü (dosya: //) altında Javascript / HTML Depolama Seçenekleri


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.


20
2018-05-06 16:05


Menşei




Cevaplar:


İş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


8
2018-05-06 18:29



Bunun bir demosunu bir araya getirdim (sayfadan sayfaya ilerlerken sürekli bir sidenavun aynı şekilde kaydırılmasında kullanılır): phrogz.net/tmp/data-through-window.name Her ikisinde de Chromev21, FFv14, IE8 ve IE9 ile çalışacak şekilde test edildi http:// ve file:// - Phrogz
Harika demo! Bir geri dönüş önerebilirim sessionStorage. Bu gelecekteki tarayıcı sürümü fişe karar vermesi durumunda bu size biraz ekstra sigorta verecek window.name "delik". - Bart


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.


3
2018-05-06 16:37



mı storageSession farklı localStorage veya globalStorage? Gecko'nun onu terk ettiğini düşündüm. file:// bilerek. - Jeff