Konrad Karpieszuk

Konrad Karpieszuk WordPress Plugin
Compatibility
Assurance for WPML

Temat: kompresja zmiennej

witam

niestety javascript znam z doskoku (jak wielu zaczalem o jquery) i przez to pewnie zadaje trywialne pytanie ;)

mam zmienną:


var porty = [{label:"Zunyi / Chińska Republika Ludowa",value:"ZYI - Zunyi / Chińska Republika Ludowa"},{label:"Srihotto / Bangladesz",value:"ZYL - Srihotto / Bangladesz"},{label:"Mzuzu / Malawi",value:"ZZU - Mzuzu / Malawi"}]


przy czym zmienna ta zwiera z 3 tysiace elementow {....}, przez to zajmuje okolo 150kB

pytanie, czy da sie to zapisac bardziej skompresowanym i potem jakos rozpakowywac przy przypisywaniu do zmiennej?
Piotr Koszuliński

Piotr Koszuliński JavaScript ninja

Temat: kompresja zmiennej

Można się bawić w użycie gzipa napisanego w JS i przesyłać tak dane, ale szybsze będzie jeśli po prostu włączysz gzipowanie w locie zawartości wysyłanej przez Twój serwer (o ile w ogóle nie masz tej opcji włączonej). Przeglądarka rozpakowuje sobie utomatycznie taką treść, a Ty oszczędzasz pewnie z 75% transferu, bo taki tekst świetnie się kompresuje.

PS. To samo możesz zrobić dla pozostałych plików JS, CSS i HTML-a. Oszczędność jest duża.Piotr Koszuliński edytował(a) ten post dnia 03.07.12 o godzinie 15:52
Konrad Karpieszuk

Konrad Karpieszuk WordPress Plugin
Compatibility
Assurance for WPML

Temat: kompresja zmiennej

hmm, a jak sprawdzic czy mam wlaczone gzipowanie plikow js?

wyczyscilem w firefoksie pamiec podreczna z ostatniej godziny (w celu by przypadkiem nie bral pliku z cache), wpisalem url do pliku. firebug wyswietla mi takie naglowki odebrane i wyslane:


Nagłówki odpowiedzi

Accept-Ranges bytes
Connection Keep-Alive
Content-Length 280141
Content-Type application/javascript
Date Tue, 03 Jul 2012 14:03:04 GMT
Etag "2e40aea-4464d-4c3ecb7ab5600"
Keep-Alive timeout=5, max=100
Last-Modified Tue, 03 Jul 2012 13:16:08 GMT
Server Apache/2.2.19 (Unix) mod_ssl/2.2.19 OpenSSL/1.0.0-fips mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635

Nagłówki zapytania

Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding gzip, deflate
Accept-Language pl,en-us;q=0.7,en;q=0.3
Connection keep-alive
Cookie wp-settings-time-1=1341318498; wordpress_logged_in_f0d08f864f9f3317758146056c618978=admin%7C1342440162%7C9a1922e0fae80bc18180d0733a535ebc
DNT 1
Host example.com <- to sam zmienilem teraz
Referer http://example.com/wp-content/themes/example/js/ <- to tez zmienilem
User-Agent Mozilla/5.0 (X11; Linux x86_64; rv:13.0) Gecko/20100101 Firefox/13.0.1
1 request
273.6 KB
339ms (onload: 736ms)
Konrad Karpieszuk edytował(a) ten post dnia 03.07.12 o godzinie 16:06
Piotr Koszuliński

Piotr Koszuliński JavaScript ninja

Temat: kompresja zmiennej

To z tego co widzę, to odpowiedź nie jest skompresowana.

Tutaj masz trochę na ten temat http://betterexplained.com/articles/how-to-optimize-yo...

Czyli musisz mieć nagłówek:

```
Content-Encoding: gzip
```

W dodatku Chrome (Developers tools) w zakładce Network pokazuje do każdego pliku w kolumnie "Size" dwie wartości - rozmiar skomresowanego i nieskompresowanego pliku.
Konrad Karpieszuk

Konrad Karpieszuk WordPress Plugin
Compatibility
Assurance for WPML

Temat: kompresja zmiennej

Piotr Koszuliński:
To z tego co widzę, to odpowiedź nie jest skompresowana.

Tutaj masz trochę na ten temat http://betterexplained.com/articles/how-to-optimize-yo...

dzieki. podany tam na czarnym tle konfig wkleilem do .htaccess (zarowno w katalogu glownym strony jak i katalogu z plikiem js) i nie pomoglo :) zakladam ze firma hostingowa nie pozwala na kompresje :)

konto usunięte

Temat: kompresja zmiennej

Zerknij tutaj:
http://godlark.com/index.php/home/post/221
to sposób na ovh

konto usunięte

Temat: kompresja zmiennej

Konrad Karpieszuk:
Piotr Koszuliński:
To z tego co widzę, to odpowiedź nie jest skompresowana.

Tutaj masz trochę na ten temat http://betterexplained.com/articles/how-to-optimize-yo...

dzieki. podany tam na czarnym tle konfig wkleilem do .htaccess (zarowno w katalogu glownym strony jak i katalogu z plikiem js) i nie pomoglo :) zakladam ze firma hostingowa nie pozwala na kompresje :)
Jeżeli nie htaccess'em to możesz ten sam efekt uzyskać spod PHP.

konto usunięte

Temat: kompresja zmiennej

musisz mieć mod_deflate załadowanyw apache. zwykle jest.

co do przykładów to zajrzyj tu:
http://www.howtoforge.com/apache2_mod_deflate

możesz sobie dopisać sekcję z logowaniem (patrz 3.testing) i będziesz wiedział czy kompresuje czy nie.
a druga opcja to kompresja w PHP i dodanie odpowiednich nagłówków.
Wojciech Mazurek

Wojciech Mazurek właściciel, PPHU
Neuron

Temat: kompresja zmiennej

Akurat w JS to ja zielony jestem jak kapusta ale zapytam co kolega chce w programie (na stronie) zrobić z 3 tysiącami pozycji?
Czy nie należało by zbudować kładki zamiast opuszczać rzeki?
To znaczy np dając userowi wybór portu najpierw dać listę kontynentów, po jej ustawieniu zaciągnąć ajaxem listę krajów na wybranym kontynencie a po jej wybraniu zaciągnąć listę portów?
I powiedzmy że mało istotne jest tutaj obciążenie serwera (choć w wątku obok koledzy przewalali się serwisami o miliardowych odsłonach;) ) ale raczej chodzi o wygodę usera - nie chciałbym wybierać portu z listy 3 tysięcy .
Konrad Karpieszuk

Konrad Karpieszuk WordPress Plugin
Compatibility
Assurance for WPML

Temat: kompresja zmiennej

Wojciech Mazurek:
Akurat w JS to ja zielony jestem jak kapusta ale zapytam co kolega chce w programie (na stronie) zrobić z 3 tysiącami pozycji?
Czy nie należało by zbudować kładki zamiast opuszczać rzeki?
To znaczy np dając userowi wybór portu najpierw dać listę kontynentów, po jej ustawieniu zaciągnąć ajaxem listę krajów na wybranym kontynencie a po jej wybraniu zaciągnąć listę portów?
I powiedzmy że mało istotne jest tutaj obciążenie serwera (choć w wątku obok koledzy przewalali się serwisami o miliardowych odsłonach;) ) ale raczej chodzi o wygodę usera - nie chciałbym wybierać portu z listy 3 tysięcy .

to jest lista lotnisk do jquery autocomplete :) user ma wpisac lotnisko z ktorego chce leciec i mają mu się wyswietlac podpowiedzi pod spodem.

dziala juz prefekcyjnie i jedyne co chcialem to zmniejszyc rozmiar pliku z js.

wybieranie kontynent > kraj > miasto nie wchodzi w grę. gdy będziesz chciał lecieć z waszyngtonu, będziesz wolał aby od razu ci sie wyswietlil, czy chcesz najpierw wybrac ameryke polnocna, potem usa i potem miasto?
Wojciech Mazurek

Wojciech Mazurek właściciel, PPHU
Neuron

Temat: kompresja zmiennej

Konrad Karpieszuk:
wybieranie kontynent > kraj > miasto nie wchodzi w grę. gdy będziesz chciał lecieć z waszyngtonu, będziesz wolał aby od razu ci sie wyswietlil, czy chcesz najpierw wybrac ameryke polnocna, potem usa i potem miasto?

I tak i nie. Można np użyć jakiegoś komponentu z autokompletowaniem i zasysać z serwera
(albo nawet z tej tablicy) po wprowadzonych znakach. Jakoś sobie nie wyobrażam wybór z 3 tys pozycji za pomocą comboboxa czy nawet okna z listą.

3 tysiące pozycji to jest c.a. 30 ekranów do przewinięcia przy 1 kolumnowej liście, małej czcionce i dużym monitorze ;)

Ja bym zrobił (gdybym potrafił hihi) dwie mapy o takiej rozdzielczości aby można było celować myszą w kraj a po wyborze kraju wyskoczyła by lista lotnisk. I wygodnie i bajerancko ;)

konto usunięte

Temat: kompresja zmiennej

Robienie map jest pracochłonne.
Autocompleter, który dostaje dane JSON'em (wielowymiarowa tablica) to pikuś.
Konrad Karpieszuk

Konrad Karpieszuk WordPress Plugin
Compatibility
Assurance for WPML

Temat: kompresja zmiennej

ok, juz sie moge pochwalic adresemm strony wiec sami powiedzcie czy autocompleter to dobre rozwiazanie, czy powinna byc mapa, czy cos innego ;)

http://wziuum.com/

autocompleter uzyty zostal na obu inputach "kraj / miasto" w formularzu dodawania trasy do bazy.

imo wygodniej sie nie da, a na pewno w takiej sytuacji klikanie po mapie czy preselekcja kontynentow, krajow, miast, nazwy lotniska tylko by odstraszyla od dodawania pozycji do bazy :)

p.s. mam nadzieje, ze strona sie komus przyda, jakby nie bylo to chyba wlasnie premiera ;)

konto usunięte

Temat: kompresja zmiennej

Nad "dodawarką" daj "szukajkę", która filtruje listę na dole.
Konrad Karpieszuk

Konrad Karpieszuk WordPress Plugin
Compatibility
Assurance for WPML

Temat: kompresja zmiennej

oczywiscie ze bedzie :) na razie nie ajaxowo dziala standardowe wyszukiwanie wodpressa ( /?s={hasło} na koncu adresu)
Wojciech Mazurek

Wojciech Mazurek właściciel, PPHU
Neuron

Temat: kompresja zmiennej

Jeśli mogę coś zasugerować...
Proponował bym podział na połączenia popularne/ w ramach unii / wakacyjne / wszystkie.

Grupa popularne mogła by się budować na podstawie statystyk i mogła by nie być sortowana alfabetycznie a w/g popularnosci

konto usunięte

Temat: kompresja zmiennej

Konrad Karpieszuk:
oczywiscie ze bedzie :) na razie nie ajaxowo dziala standardowe wyszukiwanie wodpressa ( /?s={hasło} na koncu adresu)
Jedno drugiego nie wyklucza.
Konrad Karpieszuk

Konrad Karpieszuk WordPress Plugin
Compatibility
Assurance for WPML

Temat: kompresja zmiennej

Wojciech Mazurek:
Jeśli mogę coś zasugerować...
Proponował bym podział na połączenia popularne/ w ramach unii / wakacyjne / wszystkie.

Grupa popularne mogła by się budować na podstawie statystyk i mogła by nie być sortowana alfabetycznie a w/g popularnosci

wyznaje zasade tworzenia (nie pamietam jak sie nazywa ale miala fachową nazwe, ktos pomoze?) wg ktorej trzeba jak najszybciej wypuscic na rynek strone z podstawowa funkcjonalnoscia, nawet jesli w glowie juz siedza super pomysly :) te super pomysly wdrazac juz po debiuciue.

i tak, taki podzial tez mam w planie :) opre pewnie na tagowaniu

konto usunięte

Temat: kompresja zmiennej

z drobnych spraw:
masz napisane kraj/miasto
więc zacząłem od wpisania kraju, natomiast wyniki masz w systemie odwrotnym (miasto/kraj).
czcionka trochę duża do przeczytania (na tej liście gotowców). możliwe że na laptopie wygląda ok, ale na monitorze 24" już nie. przynajmniej dla mnie.
Konrad Karpieszuk

Konrad Karpieszuk WordPress Plugin
Compatibility
Assurance for WPML

Temat: kompresja zmiennej

placeholdery zmienilem na bardziej logiczne :)

co do czcionki, mozesz pokazac zrzut?

(zrobil sie juz kompletny offtop)

Następna dyskusja:

kompresja js




Wyślij zaproszenie do