2013-07-16 17 views
6

Wiele dużych plików CSV można znacznie skompresować za pomocą np. gzip. Czy istnieje sposób na przyspieszenie D3 na dużych plikach CSV przez zmniejszenie ilości danych, które muszą zostać przesłane przez Internet do javascript w przeglądarce. Na przykład, jeśli mam plik CSV o rozmiarze 30 MB CSM foo.csv, który jest kompresowany do 9 MB pliku foo.csv.gz, mogę przekazać mniejszy plik i dostosować D3 do jego dekompresji przed wykonaniem reszty przetwarzania d3.csv.Jakikolwiek sposób przyspieszyć d3.csv na dużych plikach?

Odpowiedz

1

Nie. D3 nie zapewnia żadnej funkcji do obsługi skompresowanych plików. Można użyć biblioteki innej firmy, takiej jak JSZip, ale wtedy nie będzie można bezpośrednio korzystać z d3.csv.

+0

Spojrzałem na JSZipa. Jeden komentarz na http://www.picurl.org/blog/2009/11/22/creating-zip-archives-with-gears/ był taki, że "JSZip nie wykonuje żadnej kompresji, po prostu łączy ciąg danych i dodaje trochę informacji o organizacji plików ", więc domyślam się, że sugerowane przez ciebie podejście to gzip pliku csv, użycie JSZip do komunikacji, a następnie wprowadzenie drobnych zmian do pliku d3.js. Czy to prawda? Czy ktoś kiedykolwiek to zrobił? Nie mogę znaleźć niczego w Internecie. Czy to naprawdę możliwe? – user2367434

+2

Nie trzeba zmieniać D3. Najpierw otrzymujesz dane za pomocą AJAX lub coś podobnego, a następnie dekompresujesz je, a następnie przekazujesz do funkcji D3, która je analizuje. Nie wiem, czy ktoś próbował tego, ale powinno być możliwe. Lepszym i łatwiejszym rozwiązaniem byłoby jednak po prostu włączyć kompresję na serwerze, aby komunikacja z klientem była kompresowana automatycznie i przejrzyście. –

Powiązane problemy