Hi Leute,
bin dabei, ein kleines Programm weiterzuentwickeln, dass ein Vorgänger geschrieben hat. Dabei stehen Python Server Pages im Vordergrund und ich habe ein Servlet auf dem Application Server, der sich bei Anfragen einige Infos von anderen Rechnern im Netzwerk holt und diese zusammengefasst weitergibt.
Mein Problem: Der Application Server cached diese Informationen, wenn ich also als Client auf "Reload" klicke, schickt er mir sofort nochmal die alten Daten zu, statt sie sich neu von den anderen Rechnern zu holen... Wie änder ich das?
PS: bin absoluter Neuling, der das jetzt hier im Praktikum kennenlernen und ein wenig verbessern soll. Also lieber einen Schritt zuviel als einen zu wenig erklären
Appserver soll nicht cachen
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Das ist eher kein Problem des Appservers sondern das deines Browsers: wenn du dort Reload drückst, dann nutzt er noch die alten daten. Versuch es doch mal mit einem sogenannten "Forced Reload" des Browsers, ob es das Problem löst.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
-
- User
- Beiträge: 7
- Registriert: Freitag 25. August 2006, 16:00
hmm, ja und nein, ich glaub, ich muss es ein wenig ausführlicher erläutern.
Bisher läuft das folgendermaßen: Bei einer Clientanfrage sammelt der Server die Infos und schickt sie als HTML zurück. Dieses Sammeln dauert zwischen 15 und 30 Sekunden, ist also relativ langsam.
Meine Aufgabe ist nun, etwas zu basteln, was schneller geht. Dies werd ich wohl realisieren, indem ein Skript (Update.py) diese Anfrage regelmäßig zB 1x pro Stunde vornimmt und das Ergebnis als Haupt.html auf dem Server speichert. Kommt nun eine Clientanfrage, kann ihm diese sofort zugeschickt werden, was den Prozess wesentlich beschleunigt.
Im Normalfall reicht so die Aktualität der Seite, trotzdem hätte ich gerne einen Updatebutton beim Client, falls sich was in den letzten Minuten geändert hat.
Soweit so gut, der Client kann dann also auch diese Update.py aufrufen, so dass die HTML-Seite auf dem Server neu geschrieben wird. Und hier ist das Problem. Das wird gecached, so dass ein Klicken auf den Updatebutton oft sozusagen nix bringt.
Der wichtige Teil der Update.py sieht ungefähr so aus:
Haupt = open('C:\...\Haupt.html', 'w')
Haupt.write(download_file(__url))
Haupt.close()
Dieses open müsste jetzt also mit forced reload sein... Wenn ich nur wüsste, wie
Bisher läuft das folgendermaßen: Bei einer Clientanfrage sammelt der Server die Infos und schickt sie als HTML zurück. Dieses Sammeln dauert zwischen 15 und 30 Sekunden, ist also relativ langsam.
Meine Aufgabe ist nun, etwas zu basteln, was schneller geht. Dies werd ich wohl realisieren, indem ein Skript (Update.py) diese Anfrage regelmäßig zB 1x pro Stunde vornimmt und das Ergebnis als Haupt.html auf dem Server speichert. Kommt nun eine Clientanfrage, kann ihm diese sofort zugeschickt werden, was den Prozess wesentlich beschleunigt.
Im Normalfall reicht so die Aktualität der Seite, trotzdem hätte ich gerne einen Updatebutton beim Client, falls sich was in den letzten Minuten geändert hat.
Soweit so gut, der Client kann dann also auch diese Update.py aufrufen, so dass die HTML-Seite auf dem Server neu geschrieben wird. Und hier ist das Problem. Das wird gecached, so dass ein Klicken auf den Updatebutton oft sozusagen nix bringt.
Der wichtige Teil der Update.py sieht ungefähr so aus:
Haupt = open('C:\...\Haupt.html', 'w')
Haupt.write(download_file(__url))
Haupt.close()
Dieses open müsste jetzt also mit forced reload sein... Wenn ich nur wüsste, wie
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hallo!Ezechielpitau hat geschrieben:das Ergebnis als Haupt.html auf dem Server speichert.
Versuche doch mal, diese Zeile in den HTML-Kopf <head>-Bereich deiner "Haupt.html" einzubauen:
Code: Alles auswählen
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
Zusatzhinweis: http://www.htmlgoodies.com/beyond/refer ... hp/3472881
mfg
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.