2012-11-09 20 views
6

Özet: Geniş bir yerel dosyadan veri parçalarını seçici olarak okuyarak (en sonunda JSON'a dönüştürülecek diyelim) iyi HTML5/javascript seçenekleri var mı?
Bazı mevcut program yerel ve verilerin bir ton verir:HTML5: büyük yapısal yerel verilere erişme

Sorun çözmeye çalışıyorum. Kullanıcıların bu sonuçlara göz atmasını sağlayacak tarayıcı tabanlı bir etkileşimli görüntüleyici sunmak istiyorum. Verilerin nasıl yazıldığına dair kontrolüm var. Hepsini büyük bir dosyaya yazabilirim, ama oldukça büyük olduğu için, hafızada her şeyi okuyamıyorum. Bu nedenle, web sunucumdan buna bir çeşit indeksli veya db benzeri erişim arıyorum. çözümlere

Düşünceler:
1. Kaba kuvvetle: HTML5 FileReader API güzel bir dilim (rastgele erişim için) yöntemi vardır. Bu yüzden, dosyanın başlangıcında bir çeşit indeks yazabilirim, diğer saklanmış nesnelerin pozisyonlarını aramak için kullanabilir ve gerektiğinde bunları okuyabilirim. Bu çirkin şeyi uygulamaya koymadan önce (veya daha iyisi) böyle bir şey yapan javascript kütüphanelerinin olup olmadığını sormak isterim.

2. HTML5 yerel veritabanı. Esasen, kullanıcı tarafından belirlenen bir yerel dosyaya dayanan bir veritabanına (salt okunur) bağlanacak bir HTML5 openDatabase() çağrısı benzetimi arıyorum. Anladığım kadarıyla önceden yüklenmiş bir veritabanına sahip bir dosya belirtmenin bir yolu yok. Dahası, böyle bir hack olsaydı bile, yerel dosya formatının tarayıcılarda aynı olacağı açık değil. Tarayıcı yerel veritabanını SQL deyimlerinden dolduran telefongap çözümünü gördüm. Bunu da yapabilirim, ama bahsettiğim veriler oldukça büyüktür (5-10GB): yüklenmesi biraz zaman alır ve bu çoğaltma oldukça anlamsızdır.

+0

Dosyayı yerel dosya sistemi üzerinde yönetilebilir parçalara bölme seçeneği var mı? – collapsar

cevap

1

HTML5, ihtiyaçlarınız için uygun yanıt gibi gelmiyor. HTML5'in odak noktası, müşteri tarafındadır ve açıklamanıza bağlı olarak, büyük olasılıkla, işleyebileceğinden çok daha fazla sayıda tarayıcıya soruyorsunuzdur.

İstenilen hedef/sonuçları müşteri görünümüne ulaştırmak için sunucu tabanlı bir çözüme bakmanızı öneririm, Splunk gibi bir şey düşünülecek iyi bir ürün olurdu.

İlgili konular