Wie erzwinge ich, dass JavaScript neu geladen wird?
Ich bin mit IE 8 auf Vista, und jedesmal, wenn ich eine javascript-Datei ändern und dann debugging starten, ich muss mit Strg+F5, um es erneut mein javascript. Gibt es eine Möglichkeit, um es automatisch neu laden javascript, wenn ich debugging starten, aber nicht verlieren, die performance-Gewinne, wenn nur das surfen im Netz?
Yeah Yeah ich weiß, Sie wahrscheinlich nicht wie der IE, aber im Kopf behalten, die Frage ist nicht "Was ist der beste browser?".
InformationsquelleAutor der Frage Max Schmeling | 2009-05-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Fügen Sie eine Zeichenfolge am Ende der URL zu brechen, den cache. Normalerweise mache ich (mit PHP):
So, lädt es jedes mal, während ich arbeite, und dann nehmen Sie es aus, wenn es in die Produktion geht. In Wirklichkeit habe ich Abstrakt das sich ein wenig mehr, aber die Idee bleibt die gleiche.
Wenn Sie check out die Quelle der website, die Sie anfügen, die revision an das Ende der URL in einer ähnlichen Weise zu zwingen, die änderungen auf uns zu, wenn Sie update der javascript-Dateien.
InformationsquelleAutor der Antwort Paolo Bergantino
Paolo Allgemeinen Idee (d.h. effektiv ändern ein Teil der Anfrage-uri) ist Ihre beste Wette. Jedoch, ich würde vorschlagen, mit einem mehr statischen Wert wie eine Versionsnummer, die Sie aktualisiert, wenn Sie geändert haben die script-Datei, so dass Sie immer noch die performance-Gewinne von caching.
Also entweder so etwas wie dieses:
oder vielleicht
Ich bevorzuge die erste option, weil es bedeutet, dass Sie pflegen können, die eine Datei anstatt ständig umbenennen (zum Beispiel unterhält konsistente version der Geschichte in Ihrem source-control). Natürlich, entweder eine (wie ich beschrieben habe) würde bedeuten, die Aktualisierung Ihrer include-Anweisungen jedes mal, so möchten Sie vielleicht zu kommen mit einer dynamischen Art und Weise, es zu tun, wie der Austausch einen festen Wert mit einer dynamischen ein jedes mal, wenn Sie bereitstellen (mit Hilfe von Ant oder was auch immer).
InformationsquelleAutor der Antwort Alconja
Beim arbeiten mit web-Seite oder javascript-Datei, die Sie wollen, dass es wieder geladen werden jedes mal, wenn Sie es ändern. Sie können die Einstellungen ändern, in IE 8, so dass der browser nie-cache.
Befolgen Sie diese einfachen Schritte.
InformationsquelleAutor der Antwort Vadim
Wenn Sie schauen, um nur tun Sie das auf IHR browser (eine.k.ein. nicht zwingen, diese auf Ihre Benutzer), dann würde ich NICHT setzen Sie Ihren code so nicht verwenden, den cache. Als José sagte, es ist ein performance-Verlust.
Und ich würde nicht schalten Sie die Zwischenspeicherung auf IE insgesamt, weil Sie verlieren, dass die performance-Gewinn für jede Webseite, die Sie besuchen. Man kann sagen, also immer aktualisieren vom server für eine bestimmte site oder der Browser-Sitzung:
Oder, für die Tastatur-shortcut-philes (wie ich) draußen..
NOTIZ VON VORSICHT :
Nachdem dies gesagt ist... beachten Sie, dass Sie jederzeit entwickeln/testen in einer anderen Weise als der Ort angesehen wird, in der Produktion, laufen Sie Gefahr, sich zu gemischten Ergebnissen. Ein gutes Beispiel ist das caching-Problem. Wir fanden ein Thema, wo IE die Zwischenspeicherung wurde unsere Ajax-calls und keine Aktualisierung der Ergebnisse aus einer GET-Methode. Wenn wir deaktiviert HATTEN-caching des IE, würden wir nie gesehen haben, dieses problem in der Entwicklung, und würde bereitgestellt haben es die Produktion wie dieser.
InformationsquelleAutor der Antwort coderob
In javascript-ich denke, es ist nicht möglich, da moderne Browser haben eine Richtlinie über die Sicherheit in javascripts.. und das löschen des cache ist eine sehr verletzen.
Können Sie versuchen, hinzufügen
In Ihrem Kopf, aber Sie haben performance-Verlust.
InformationsquelleAutor der Antwort José Leal
Dies sollte den trick tun für ASP.NET. Das Konzept ist das gleiche wie im PHP-Beispiel. Da die URL anders ist, jedes mal wenn das script geladen wird, weder browser, der proxy-cache sollte die Datei.
Ich bin es gewohnt, meine JavaScript-code in separaten Dateien, und verschwendet eine beträchtliche Menge an Zeit mit Visual Studio, bis ich merkte, dass es würde nicht laden der JavaScript-Dateien.
Vollständigen Beispiel:
Obvously, diese Lösung sollte nur verwendet werden, während der Entwicklungsphase, und sollte entfernt werden, bevor die Website.
InformationsquelleAutor der Antwort drpetermolnar
Beseitigen die Notwendigkeit, immer wieder F5 drücken, in einem IE-tab während der Entwicklung der website, verwenden Sie ReloadIt.
Für jede Webseite angezeigt, im IE, können Sie konfigurieren Sie einen Dateinamen, ein Verzeichnis, oder ein Satz von Ihnen. Bei änderung einer dieser Pfade konfiguriert, ReloadIt aktualisiert der IE tab. Ein einfaches tool. Es funktioniert einfach.
Dies alles nachladen, nicht nur javascript.
InformationsquelleAutor der Antwort Cheeso
Fügen Sie ein Datum der änderung der js-Datei am Ende des URL. Mit PHP würde es in etwa so Aussehen:
Wenn Ihr Skript neu geladen, jedes mal, wenn Sie es aktualisieren.
InformationsquelleAutor der Antwort oO.
Wenn Sie ausgeführt werden ASP.Net, überprüfen Sie heraus die Bündelung und Verkleinerung Modul verfügbar ASP.Net 4.5.
http://www.asp.net/mvc/tutorials/mvc-4/bundling-and-minification
Können Sie erklären, ein "Bündel", die Punkte, um Ihre javascript-Datei. Jedes mal, wenn Sie Ihre changes-Datei, erzeugt es einen neuen querystring-suffix... aber wird dies nur tun, wenn die Datei geändert wird. Dies macht es super einfach, um das bereitstellen von updates, weil Sie nicht einmal darüber nachdenken müssen, aktualisieren Sie Ihre tags mit der neuen version zahlen.
Kann es auch bundle mehrere .js-Dateien zusammen in eine Datei, und verkleinern Sie Sie, alles in einem Schritt. Das gleiche gilt für css.
InformationsquelleAutor der Antwort Rob Hudson