Komprimierte txt Files für Points of Interest in Open Layers

Hallo Forum,
wir setzen die Open Streetmap Daten mit eigens gerenderten Karten (Mapnik) und OpenLayers ein. Hier unser Beispiel für die Karten zum Thema Skiurlaub in Österreich. Ihr seht auch, dass die Ladezeit recht lang ist. Wir erstellen gerade eine neue Version wobei wir versuchen die Bandbreite so gut es geht zu reduzieren. Nun ist es so, dass unsere txt Files, die wir OpenLayers übergeben recht groß sind. Ich würde die Textfiles gerne gzip komprimieren, so dass der User nur die gzip komprimierten txt Files lädt. Natürlich müssste ich im OpenLayer Javascript dann die Funktionalität einführen, dass die txt Dateien entzippt werden. Hat das von euch schon jemand gemacht und könnte mir erzählen wie ich mittels Javascript gzip komprimierte Dateien wieder dekomprimiere?? Wenn ich da google dann finde ich nur Hinweise wie ich javascript Dateien selbst gzippe.

Danke für Eure Hilfe
Martin

Bring halt deinen Server dazu, alles zu komprimieren (bei apache z.B. mit mod_deflate). Praktisch alle Browser können dem Server sagen, ob sie gzip können und das ggf einsetzen. Kann man auch auf einzelne Inhalte (Text, HTML, Javascript komprimieren, Bilder nicht) einschränken. Die Verhandlung, ob komprimiert wird läuft nur zwischen Browser und Server, transparent nach aussen, für den Programmierer gibts dann nichts weiter zu berücksichtigen.

Bei grossen Textdateien mit POIs ist der Flaschenhals aber oft der Browser, glaube ich. Die Verteilung von 10000 Punkten auf einer Karte fordert mehr Zeit fürs Rechnen als fürs Runterladen. Aber das kann man ja mal mit einem lahmen Rechner an einer schnellen Leitung testen…

Nahmd,

Ich hab mich bereits daran versucht und bin gescheitert.

Der Browser selbst kann zwar komprimierte Dateien entkomprimieren, macht das aber nur “für sich selbst” und nicht für JS; das XmlRpcRequest benutzt offensichtlich einen niedrigeren Layer und bekommt die Bytes so geliefert, wie der Server die bereitgestellt hat.

Es gibt eine etwas bizarre Möglichkeit, diese Einschränkung zu umgehen: auf XmlRpcRequest verzichten, den Browser selbst die Daten holen lassen – dann werden sie auch dekomprimiert – und mit “innerHTML” darauf zugreifen.

→ in ein

– wenn die Daten statisch sind.
→ in ein

Hmmm… grad ausprobiert: In der Kombination (Apache/2.2.9 und Firefox 3.0.19 oder Opera 9.27) ist die Textdatei komprimiert. Die Pois sind als Layer mit

pois = new OpenLayers.Layer.Text( "Blupp", {location:"pfad/zu/pois.txt",...

eingebunden.

Ists vom Browser abhängig oder vom Layertyp?