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
Hallo,
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?
Grüße
nodejs-wa schrieb:> Hallo,>> 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?>> Grüße
ja, genau.
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.
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.
nodejs-wa schrieb:> nur aus Interesse gefragt: hat die WebApp einen Webservice?>> Viele Grüße
Nur aus Interesse gefragt: hast du auch Antworten, oder warum fragst du
wiederholt nach Einzelheiten, die nichts zur Sache tun?
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?
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)
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...
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.
Arne S. schrieb:> Fun fact: eure Vorstellung reicht nicht einmal aus,> euch vorzustellen was so eine App leisten könnte.
Fun fact: Wenn du eine App entwickelst, dann tue das bitte und
installiere sie auf die Telefone. Aber lass sie nicht als Webseite den
unbedarften Mobile-Internet-User mit 300 MB Monatsvolumen laden.
Jemand schrieb:> Rühmst du dich gerade mit schlechter Softwarearchitektur?
Ich wüsste nicht, wozu ich einem namenlosen Niemand etwas über
Softwarearchitektur beibrigen sollte. Ich bin aber beeindruckt, dass du
das Wort fehlerfrei copy&pasten konntest. Weiter so!
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.
Arne S. schrieb:> Ich wüsste nicht, wozu ich einem namenlosen Niemand etwas über> Softwarearchitektur beibrigen sollte. Ich bin aber beeindruckt, dass du> das Wort fehlerfrei copy&pasten konntest. Weiter so!
Ach komm, bespaß mich weiter!
Arne S. schrieb:> So, Thema ist durch. Hier ist keine Hilfe zu erwarten. Woanders konnten> wir eine zielführende Diskussion starten.
Wenn du in einem Mikrocontroller-Forum danach fragst, wie du deine 1 GB
große Webseite auf deinem Handy cachen kannst, brauchst du dich nicht
wundern, dass du keine Antwort bekommst.
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.
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.
Ε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? ?