javascript text-Kompression/Dekompression
Angenommen ich habe eine 400 KB-text-Datei, die ich Lesen möchte aus einem javascript. Das problem ist, dass meine Zielgruppe eine langsame Verbindung haben, so 400k könnte zu lange dauern, um zu laden.
Ich nehme an, ich muss die Datei komprimieren, aber auch, wie kann ich entpacken Sie es mittels javascript auf der client-Seite?
Lohnt es sich, oder wird sich die benötigte Zeit für die Dekompression Annulliere die eingesparte Zeit in das herunterladen?
UPDATE
Nur klar zu sein, die Datei ist der text (die Daten) nicht code.
- Gut, es würde davon abhängen, was die text-Datei enthält! Im Grunde genommen, auch die Kompression entfernen überflüssige Leerzeichen und Zeilenumbrüche, die können verringern Sie die Größe der Datei erheblich, aber wie werden Sie re-konstruieren, es wieder auf der client-Seite?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie GZip die text-Datei, und schickte es an den browser. Diese Weise werden Sie nicht haben, etwas zu tun, die auf der client-Seite die browser selbst entpacken.
könnten Sie HTTP-Komprimierung verwenden?
Das sieht interessant aus:
http://rumkin.com/tools/compression/compress_huff.php
Ein paar tests mit VIEL text tauchte ein ziemlich gutes Ergebnis.
[Alte Frage, aber nur, wenn andere Leute stolpern über diesen...]
Die beste Möglichkeit, damit umzugehen, ist die Verwendung HTTP-Komprimierung. Alle wichtigen web-Servern und web-Browsern unterstützt wird. In der Tat, wenn Sie mit einem web-hosting-service und die Datei ist ein Dateityp, der allgemein erfordert die Komprimierung (z.B. css, js, html), dann ist es wohl schon komprimiert, um den transport und Sie sind einfach nicht bewusst zu sein.
Du ja nicht nicht zur Komprimierung/Dekomprimierung sich browser gibt es für Sie nur Sie haben, um anzugeben, server-parameter für die server, die Sie verwenden.
Hinweis: Sie können explizit angeben, für das, was alle MimeType( Antwort-format)
Ex.
Unten ist tomcat-server Einstellung parameter.
Sicher sein, dass die Kompression arbeitet Sie überprüfen können.
drücken Sie F12(developer tool)[mir ist Chrome] -> Registerkarte "Netzwerk" - > starten Sie die Aufnahme.
klicken Sie auf die Anfrage-url, reagiert die gewünschten Daten/text.
Dann gehen Sie auf die Kopfzeile tab.
sehen Sie.
REquest - /REsponse-Header
dass es mit der Codierung. und die Größe-Spalte in der Registerkarte "Netzwerk" againsr die url zeigt die Größe zu reduzieren.
DEKOMPRIMIEREN JAVASCRIPT
Ist UNMÖGLICH zu verbergen, die komprimierte code.
Einer typischen JavaScript-Komprimierung /packer/beginnt mit dem folgenden code:
Den
eval
Funktion wertet einen string-argument enthält JavaScript. In den meisten Packereval
verwendet wird, gefolgt vondocument.write
.Zu Dekomprimieren, JavaScript, ersetzen Sie diese Methoden von einer der folgenden:
1. Ersetzen
eval
durchalert
(Wie diese:alert(function(p,a,c,k,e,r)
... und öffnen oder aktualisieren der html-Seite, wird die Meldung drucken Sie einfach den code in einem popup-Fenster)2. Wenn der JavaScript-Code wird angezeigt, nachdem die
<body>
element, können Sie eine<textarea>
etwa so:Dann ersetzen Sie
eval
(...); durchdocument.getElementById("code").value=…;
Beide Optionen, die erste ist einfacher... viel Glück 🙂