2014-02-11 5 views
7

Ich wechselte von Eclipse zu Jdeveloper. Ich hatte ein seltsames Problem, das ich lösen konnte, aber nicht verstehen konnte.Änderungen in HTML nicht reflektiert, solange ich Proxy verwende

Immer wenn ich Änderungen in HTML in Jdeveloper's Web-Projekten vorgenommen habe, wurden die Änderungen nicht wiedergegeben, wenn ich den HTML-Code erneut ausführte. Die alten Webseiten kamen immer wieder in den Webbrowser. Derselbe Quellcode. Gleiches CSS/JS. Ich habe festgestellt, dass die Änderungen nicht berücksichtigt wurden, solange Proxyeinstellungen in meinem Webbrowser vorgenommen wurden. Aber wenn ich den Proxy ausschaltete, spiegelten sich die in HTML gemachten Änderungen wider, d. H. Die Webseite wurde mit den Änderungen vom letzten Mal angezeigt.

von Proxy-Set I Proxy-Einstellung auf den folgenden Fenster platziert bedeuten -> Startmenü -> Internetoptionen -> Verbindungen -> LAN-Einstellungen -> Proxy Server

ich versucht habe, die resultierende URL auf Google laufe Chrome, Firefox und Internet Explorer. Solange der Webbrowser Proxy verwendete, wurden die in HTML vorgenommenen Änderungen nicht durch erneutes Ausführen angezeigt.

In Eclipse Juno musste ich einfach das Verzeichnis von Tomcat säubern, um die Änderungen anzuzeigen.

Jeder kann erklären, warum das passiert?

Antwort

5

Webserver geben HTTP-Header mit jeder Antwort zurück, und normalerweise geben diese Header an, wie lange die Antwort zwischengespeichert werden kann. Proxy-Server lesen diese Header und treffen eine Entscheidung, wenn sie dieselbe Anfrage erneut sehen - entweder, um diese Anfrage an den Server weiterzuleiten oder einfach die zwischengespeicherte Kopie der Antwort zurückzugeben.

Sie können die Serverkonfiguration so ändern, dass sie dem Proxy-Server das nächste Mal sagt, dass Seiten nicht zwischengespeichert werden sollen. Einige Proxy-Server sind jedoch falsch konfiguriert oder beschädigt und cachen Seiten, die nicht zwischengespeichert werden sollen.

Für diese Fälle ist eine hässliche Lösung, die Ihren JS- und CSS-Dateien neue Namen gibt, wenn Sie sie ändern. Wenn Ihre index.html-Datei beispielsweise index.css und index.js enthält und Sie eine Änderung an index.js vornehmen, können Sie die geänderte Datei als index.2.js speichern und das Tag in Ihrer index.html-Datei ändern von nun an auf index.2.js zu zeigen.

Das ist ein bisschen drastisch, aber es funktioniert. Eine einfachere Lösung ist es, die Seite mit Shift-F5 statt mit F5 (in Ihrem Browser) zu aktualisieren. Das weist den Browser an, eine Aktualisierung aller zwischengespeicherten Seiten zu erzwingen, wann immer dies möglich ist.

3

Dies scheint mit Ihrem Proxy-Server-Typ verbunden. Es gibt mehrere Proxy-Server-Typen, von denen einer "Caching Proxy Server" ist. Wenn viele Benutzer damit verbunden sind, können statische Seiten lokal auf dem Server für wiederholte Anfragen vom Client (Sie) gespeichert werden. Wenn Sie den Proxy ändern, sendet er Ihnen höchstwahrscheinlich nur eine aktualisierte Kopie, weil er Sie nicht als aktiven Client hat oder Sie ein neuer Benutzer sind.

Ich würde davon ausgehen, dass der Inhalt auf die neue Software gespeichert Seitennamen bauen wird Precaching wo Eclipse Juno Echtzeit-Bildschirme on the fly Generierung wurde, wird die im Cache-Server-Option umgangen wird.