Diese Frage wurde mehrmals gestellt, aber nicht spezifisch für dieses Beispiel.
Hier ist eine Übersicht unserer Anwendung:
Während der Entwicklung versuche ich, Bust-Dateien zu cachen, die sich ändern, aber nicht diese Kernbibliotheken, um das Neuladen meiner Seite zu beschleunigen und meine Entwicklung zu beschleunigen.
Ich habe Erklärungen gefunden zu:
Könnte die Lösung:
Das Cache-Busting funktioniert, indem eine immer eindeutige Abfragezeichenfolge an das Ende jeder Datei angehängt wird, die benötigt wird. Es verwendet den urlArgs
config-Wert von RequireJS; RequireJS übernimmt das Anhängen für Sie:
Der (new Date()).getTime()
-Teil ist nur eine einfache Möglichkeit, eine eindeutige Zeichenfolge aus JavaScript zu erhalten. Sie könnten etwas Variation in Math.random()
vornehmen, aber mit der Anzahl der Millisekunden seit der Epoche wird die Eindeutigkeit garantiert, um optimale Cache- Bosheit.
Ich denke, Herr Burke schlägt etwas wie:
vor %Vor% Also, anstelle des allgegenwärtigen urlArgs
Cache-Busting, wenden Sie es spezifisch auf jede Datei an, die sich wahrscheinlich ändert; daher ausgeschlossen alle Bibliotheken.
Ich habe es nicht getestet, aber ich würde es wahrscheinlich auf etwas aufräumen wie:
%Vor%Denken Sie daran, dass Sie, wenn Sie sich wirklich auf ein externes Skript verlassen müssen, anstelle von $ .getScript verwenden können muss sicherstellen, dass es enthalten ist. Ich habe einige nicht-Amd-Skripte, die für die Integration von Drittanbietern sind (z. B. amazon Zahlungen), die ich anstelle von erforderlich GetScript verwendet. Wenn Sie diese Methode verwenden können, würden Sie verhindern, dass die Cache-Busting-Parameter von urlArgs an den externen Server gesendet werden.
Tags und Links javascript requirejs node.js caching browser-cache