Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [js]Kompresja danych przed wysłaniem
Forum PHP.pl > Forum > Po stronie przeglądarki
konrad_kojak
Witam.
Mam następujący problem. Wczytuję dane z urządzenia Garmin przy pomocy odpowiedniego pluginu. W tym momencie dane wczytuję do textarea. Są one w formacie xml i zazwyczaj tych danych jest bardzo dużo więc trochę zajmują (zazwyczaj więcej niż 1 mega), a ja potrzebuję je teraz wysłać na serwer.
I teraz pytanie czy istnieje jakaś funkcja lub jakiś sposób na skompresowanie tego przy pomocy js lub czegoś podobnego?
Wysyłanie nieskompresowanego zajmuje zbyt dużo czasu, a jak użytkownik ma wolne łącze to to będzie trochę trwało:/
paziek
W JS raczej tego nie zrobisz.
Mógłbyś teoretycznie stworzyć na dysku tymczasowy spakowany plik, wysłać go na serwer i rozpakować, ale takie coś z poziomu strony WWW nie bardzo.. JS w rozszerzeniach FF lub widgetach Opery (od 9.51? napewno w 9.52 już jest) może i tak.

Możliwe, że flash oferuje coś w tym rodzaju, a aplet Java to już napewno.
konrad_kojak
Cytat(paziek @ 20.08.2008, 22:01:44 ) *
JS w rozszerzeniach FF lub widgetach Opery (od 9.51? napewno w 9.52 już jest) może i tak.


Najlepiej jakby to działało tak aby użytkownik nie musiał niczego dodatkowego instalować więc na domyślnych ustawieniach przeglądarek.
.radex
Cytat(paziek @ 20.08.2008, 22:01:44 ) *
W JS raczej tego nie zrobisz.
Mógłbyś teoretycznie stworzyć na dysku tymczasowy spakowany plik, wysłać go na serwer i rozpakować, ale takie coś z poziomu strony WWW nie bardzo.. JS w rozszerzeniach FF lub widgetach Opery (od 9.51? napewno w 9.52 już jest) może i tak.

Możliwe, że flash oferuje coś w tym rodzaju, a aplet Java to już napewno.


widgety opery nie mają kompletnie związku z tym co mówisz... widgety nie są odpowiednikami rozszerzeń Fx-a. Ale: można przesyłać pliki skompresowane gzipem (jakieś ustawienia apache'a, czy coś w php. nie pamiętam dokładnie). W JS teoretycznie da się coś takiego napisać, ale nie wiem, czy jest jakiś gotowiec.
paziek
Cytat(.radex @ 21.08.2008, 21:57:27 ) *
widgety opery nie mają kompletnie związku z tym co mówisz... widgety nie są odpowiednikami rozszerzeń Fx-a. Ale: można przesyłać pliki skompresowane gzipem (jakieś ustawienia apache'a, czy coś w php. nie pamiętam dokładnie). W JS teoretycznie da się coś takiego napisać, ale nie wiem, czy jest jakiś gotowiec.

Wiem, że widgety to nie jest odpowiednik rozszerzenie FF, ale sądzę, że coś dałoby się wyczarować. Ewentualnie user-scripta, o ile miałby dostep do API związanego z obsługa plików. No, ale to jest akurat kiepskie rozwiązanie, jak sam autor tematu napisał.

Poza tym.. tutaj serwer akurat nie ma nic do gadania, chyba mylisz wysyłanie plików od usera do serwera, z wysyłaniem plików od serwera do usera - gdzie pierwsze to problem, a drugie to banał.


Nie wiem.. może weź sobie kod źródłowy jakiegoś rar'a czy zip'a i przepisz na JavaScript - może się da tongue.gif
No, a tak na serio - to aplet Javy, raczej nic innego tutaj nie wymyślisz. Trzeba by niestety napisać własny, bo nie sądzę, aby wiele osób potrzebowało czegoś takiego.
.radex
Cytat(paziek @ 22.08.2008, 10:51:35 ) *
Wiem, że widgety to nie jest odpowiednik rozszerzenie FF, ale sądzę, że coś dałoby się wyczarować. Ewentualnie user-scripta, o ile miałby dostep do API związanego z obsługa plików. No, ale to jest akurat kiepskie rozwiązanie, jak sam autor tematu napisał.

No nie wydaje mi się. Widget jest jakby osobną stroną i nie ma interakcji z innymi.

Cytat
Poza tym.. tutaj serwer akurat nie ma nic do gadania, chyba mylisz wysyłanie plików od usera do serwera, z wysyłaniem plików od serwera do usera - gdzie pierwsze to problem, a drugie to banał.


Racja, moja pomyłka.

Cytat
Nie wiem.. może weź sobie kod źródłowy jakiegoś rar'a czy zip'a i przepisz na JavaScript - może się da tongue.gif


Myślę, że da się, bo w końcu JS ma dostęp do zawartości inputów i (teoretycznie) mógłby skompresować dane przed wysłaniem. Natomiast zastanawiam się jak to w praktyce. A jakieś klasy do kompresji (deflate, czy coś takiego) myślę, że by się znalazło.
Method
może rozjaśni się trochę:
http://www.codeguru.pl/article-641.aspx
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.