caching großer webpack bundles / preload

Gast #6146317
Lesenswert?

Hallo Leute,
ich baue mir gerade eine WebApp mit einem Mashup aus einigen großen npm 
packages. Mittlerweile umfasst das von webpack erzeugte, minified 
bundle, über 500MB, Tendenz Richtung 1 GB, denn es ist noch lange nicht 
feature-komplett.

Welche Möglichkeiten gibt es, den Download gerade von mobilen Devices 
aus bei wiederholtem Starten meiner WebApp zu cachen? Also 
sicherzustellen, wenn derselbe Nutzer dieselbe Webseite erneut aufruft, 
dass sein Browser sämtliche benötigten bundles im Cache vorhält statt 
500MB erneut zu laden, und dass der Browser nicht der Meinung ist, dass 
irgendwas unbekannt oder veraltet wäre?

Anders gefragt, gibt es eine Möglichkeit, dem Nutzer ein 
"Vorabinstallation" zu erlauben, dass er also irgendeinen Link klickt, 
woraufhin alle benötigten bundles für seinen Browser heruntergeladen 
werden und dann verfügbar sind? Es geht nicht um die Installation von 
Extensions oder Plugins, sondern einzig und allein um das Vorhalten der 
bundles, die sonst erst beim Aufruf der Webseite geladen würden.

War das halbwegs verständlich? Sonst bitte nachfragen.
Viele Dank
Arne
#6146444
Lesenswert?

Arne S. schrieb:
>> bist du dir Sicher, dass du eine Webanwendung entwickelst? Werden
>> tatsächlich 500 MB an HTML, CSS und JS Dateien benötigt, damit die
>> Anwendung beim Client startet?
>
> ja, genau.

Ich fürchte dann läuft da was konzeptionell schief. Bei der Größe wird 
das nix, auch nicht mit Cache oder sonstigen Hilfsmaßnahmen.

Nimm eine andere Sprache oder verzichte radikal auf 90% Deiner 
Abhängigkeiten.
Gast #6146471
Lesenswert?

Gerd E. schrieb:
> Ich fürchte dann läuft da was konzeptionell schief. Bei der Größe wird
> das nix, auch nicht mit Cache oder sonstigen Hilfsmaßnahmen.

Begründung?

Würde es mit kleineren Bundles gehen? Ist das Problem die standardmäßige 
Größe des Caches? Kann man diese anpassen, und sei es für einen 
bestimmten Browser?

> Nimm eine andere Sprache oder verzichte radikal auf 90% Deiner
> Abhängigkeiten.

Diese Option besteht leider nicht. Sonst würde ich nicht fragen.

Die App ist durchaus benutzbar zum jetzigen Stand und bietet einen 
derartigen Mehrwert, dass Nutzer bereit sind, 1-2 Minuten auf den 
Download zu warten, da ich sie vorher auf die derzeitige Notwendigkeit 
hingewiesen habe. Auf Desktopsystemen ist diese Größe gar kein Problem.
Gast #6146549
Lesenswert?

Andre schrieb:
> Arne S. schrieb:
>> über 500MB, Tendenz Richtung 1 GB
>
> Aus reiner Neugierde. Kannst du kurz anreissen, was dieses Programm tut?

Aus reiner Neugierde. Was tut dies zur Sache?

Ich habe eine Frage gestellt und nach einer Lösung gefragt. Stattdessen 
kommen nur Gegenfragen und die Antwort "geht nicht". Alle Antworten hier 
hättet ihr euch sparen können. Dann würde sich vielleicht jemand 
Kompetentes erbarmen, der sieht, dass meine Frage unbeantwortet ist. 
Aber so?
Gast #6146572
Lesenswert?

Arne S. schrieb:
> Andre schrieb:
>> Arne S. schrieb:
>>> über 500MB, Tendenz Richtung 1 GB
>>
>> Aus reiner Neugierde. Kannst du kurz anreissen, was dieses Programm tut?
>
> Aus reiner Neugierde. Was tut dies zur Sache?
>
> Ich habe eine Frage gestellt und nach einer Lösung gefragt. Stattdessen
> kommen nur Gegenfragen und die Antwort "geht nicht". Alle Antworten hier
> hättet ihr euch sparen können. Dann würde sich vielleicht jemand
> Kompetentes erbarmen, der sieht, dass meine Frage unbeantwortet ist.
> Aber so?

Die Antwort ist, dass dein Grundkonzept völlig für die Tonne ist! Das 
gehört als eigenständiges Programm ausgeliefert. (wobei ich vermute, 
dass >90% einfach überflüssiger Bloat ist)
Gast #6146575
Lesenswert?

Tja, da du es nicht schaffst, dein Problem vollständig zu beschreiben, 
kommen halt Gegenfragen. Da du diese nicht beantworten willst, bist du 
wohl nicht sehr smart.
http://www.catb.org/esr/faqs/smart-questions.html#goal

Allein die Idee, ein Website, entschuldige, WebApp natürlich, mit einem 
Gigabyte Transfervolumen zu bauen, ist ja so absurd, dass es sich nur um 
eine Trollfrage handeln kann...
Gast #6146611
Lesenswert?

Aus euch spricht der blanke Neid, weil ihr nicht in der Lage seit, 
derart komplexe Mashups zu konstruieren. Fun fact: eure Vorstellung 
reicht nicht einmal aus, euch vorzustellen was so eine App leisten 
könnte.
Gast #6146642
Lesenswert?

So, Thema ist durch. Hier ist keine Hilfe zu erwarten. Woanders konnten 
wir eine zielführende Diskussion starten.
Gehabt euch wohl! Und wenn ihr irgenwann selbst mehr als HelloWorld 
programmieren könnt, hören wir vielleicht noch mal voneinander.
#6146785
Lesenswert?

Davon mal abgesehen das ich dir bei deinem Caching Problem nicht helfen 
kann.

Kann ich aber, aus Erfahrung, sagen das bei einem Mashup ein Cache 
überhaupt keinen Sinn macht. Das liegt an der Natur des Mashup selbst. 
Bei einem Mashup von 1GB (so am Rande: was wirklich absurd groß ist) 
werden da soviele immense Abhängigkeiten von anderen Webservices 
stattfinden das der komplette Cache geändert werden müsste, wenn sich 
auch nur eine Abhängigkeit ändert / aktualisiert weil du die Konsistenz 
sonst garnicht garantieren kannst.

Aber, mach dir Gedanken darüber ob du dies als wirklich als Mashup 
realisieren willst. Bei dieser Größe ist das wirklich als Webapp ad 
absurdum. Das hat rein garnichts mit Webentwicklung zu tun. Vor allem 
ist die Frage nach dem "Was" wirklich berechtigt: weil das einzigste was 
mir in solchen Größen einfallen würde, wären Spiele und selbst da macht 
Mashup keinen Sinn.
#6148421
Lesenswert?

Ach geh, so eine Web-App ist doch erst richtig toll, wenn sie per WASM 
einen CPU-Emulator laufen lässt, auf dem dann ein Linux rennt, welches 
Docker-Container beherbergt. Simple Design-Decision, und schon ist das 
Serverless-Container-Cloud-Computing Feld im Bullshit-Bingo abgehakt.
Gast #6148444
Lesenswert?

Εrnst B. schrieb:
> Ach geh, so eine Web-App ist doch erst richtig toll, wenn sie per
> WASM einen CPU-Emulator laufen lässt, auf dem dann ein Linux rennt,
> welches Docker-Container beherbergt. Simple Design-Decision, und schon
> ist das Serverless-Container-Cloud-Computing Feld im Bullshit-Bingo
> abgehakt.

Sowas könntest du wohl auch gerne? ?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren