44 Stimmen

Wie kann man den IE zwingen, Javascript neu zu laden?

Ich benutze IE 8 auf Vista, und jedes Mal, wenn ich eine Javascript-Datei ändern und dann Debugging starten, muss ich Strg+F5 drücken, damit mein Javascript neu geladen wird. Gibt es eine Möglichkeit, um es automatisch neu zu laden Javascript, wenn ich Debuggen starten, aber nicht verlieren die Leistung gewinnt, wenn nur das Surfen im Netz?

Ja, ich weiß, dass Sie den IE wahrscheinlich nicht mögen, aber denken Sie daran, dass die Frage nicht lautet: "Was ist der beste Browser?

1voto

José Leal Punkte 7777

In Javascript denke ich, dass es nicht möglich ist, weil moderne Browser eine Sicherheitspolitik in Javascripts und das Löschen des Cache ist eine sehr verletzende.

Sie können versuchen, Folgendes hinzuzufügen

<META HTTP-EQUIV="Pragma" CONTENT="no-cache">

In Ihrer Kopfzeile, aber Sie werden Leistungseinbußen haben.

1voto

drpetermolnar Punkte 169

Dies sollte für ASP.NET genügen. Das Konzept ist dasselbe wie das im PHP-Beispiel gezeigte. Da die URL jedes Mal, wenn das Skript geladen wird, anders ist, sollten weder Browser noch Proxy die Datei zwischenspeichern. Ich bin es gewohnt, meinen JavaScript-Code in separaten Dateien abzulegen, und habe viel Zeit mit Visual Studio vergeudet, bis mir klar wurde, dass es die JavaScript-Dateien nicht neu laden würde.

<script src="Scripts/main.js?version=<% =DateTime.Now.Ticks.ToString()%>" type="text/javascript"></script>

Vollständiges Beispiel:

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
    CodeBehind="Default.aspx.cs" Inherits="WebApplication1.\_Default" %>

<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">

   <script src="Scripts/jquery-1.4.1-vsdoc.js" type="text/javascript"></script>  
   <script src="Scripts/main.js?version=<% =DateTime.Now.Ticks.ToString()%>" type="text/javascript"></script>
    <script type="text/javascript">

        $(document).ready(function () {
                                myInit();
                          });

    </script>
</asp:Content>

Natürlich sollte diese Lösung nur in der Entwicklungsphase verwendet werden und vor der Veröffentlichung der Website entfernt werden.

1voto

oO. Punkte 496

Fügen Sie das Änderungsdatum der js-Datei am Ende Ihrer URL hinzu. Mit PHP würde es etwa so aussehen:

echo '<script type="text/javascript" src="js/something.js?' . filemtime('js/something.js') . '"></script>';

Wenn Ihr Skript jedes Mal neu geladen wird, wenn Sie es aktualisieren.

1voto

Rob Hudson Punkte 11

Wenn Sie mit ASP.Net arbeiten, sollten Sie sich das in ASP.Net 4.5 verfügbare Modul zur Bündelung und Minifizierung ansehen.

http://www.asp.net/mvc/tutorials/mvc-4/bundling-and-minification

Sie können ein "Bundle" deklarieren, das auf Ihre Javascript-Datei verweist. Jedes Mal, wenn sich Ihre Datei ändert, wird ein neues Querystring-Suffix generiert... aber nur, wenn sich die Datei ändert. Dies macht es super einfach, Updates bereitzustellen, weil Sie nicht einmal darüber nachdenken müssen, Ihre Tags mit neuen Versionsnummern zu aktualisieren.

Es kann auch mehrere .js-Dateien in einer Datei bündeln und sie in einem Schritt minifizieren. Dasselbe gilt für css.

0voto

Cheeso Punkte 184210

Um zu vermeiden, dass Sie während der Entwicklung einer Website in einer IE-Registerkarte wiederholt F5 drücken müssen, verwenden Sie ReloadIt .

enter image description here

Für jede im IE angezeigte Webseite können Sie einen Dateinamen, ein Verzeichnis oder eine Reihe von Dateien konfigurieren. Wenn sich einer der konfigurierten Pfade ändert, aktualisiert ReloadIt die IE-Registerkarte. Ein einfaches Werkzeug. Es funktioniert einfach.

Dadurch wird alles neu geladen, nicht nur Javascript.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X