Zwischenspeichern bestimmter Module mit RequireJS

9

Diese Frage wurde mehrmals gestellt, aber nicht spezifisch für dieses Beispiel.

Hier ist eine Übersicht unserer Anwendung:

  • Einfaches Server-Routing mit Express on Node
  • Single-Backbone-Anwendung
  • Kernmodule und Bibliotheken (JS / CSS), die sich nicht ändern
  • Widget JS / LESS / HTML-Dateien, die sich häufig ändern

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:

  1. Cache-Busting auf RequireJS - hier
  2. Erläuterung zu speziellen Modulen zur Cache-Löschung - hier

Könnte die Lösung:

  1. Erkläre, wie das Caching-Busting funktioniert?
  2. Stellen Sie eine Lösung für dieses spezifische Szenario bereit.
imrane 13.05.2013, 13:50
quelle

2 Antworten

4

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:

%Vor%

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%     
c24w 14.05.2013 12:41
quelle
0

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.

    
Daniel 15.10.2014 18:51
quelle