Zum Inhalt springen

Javascript-Funktion bei Ausführung nicht auf Cache zurückgreifen


Empfohlene Beiträge

Hallo zusammen!

Ich auf einer Webseite einen Button, die eine Javascript-Funktion ausführt.

Diese Javascript-Funktion greift Daten von einer Datenbank ab und gibt diese später per Alert aus.

Bei der ersten Ausführung der Funktion wird der aktuelle Wert aus der DB gelesen. Ändert sich aber nun der Wert in der DB und betätige ich nochmal den Button, wird wieder der gleiche Wert ausgegeben und nicht der aktuelle. Jemand eine Idee was man dagegen machen kann, bzw. wie sich dieses Problem lösen lässt? Erst nach löschen des Caches im IE wird der aktuelle Wert ausgegeben.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich vermute mal schwer, dass nicht das JS die Daten abruft (das geht afaik ohne Plugins (ActiveX oder so) auch gar nicht und wäre komplett unsicher, da man JS lesen kann und somit Passwörter, Datenbanknamen usw. alles sehen könnte), sondern dass sie von PHP aus an JS übergeben werden.

Die Frage wäre nun, was beim Aufruf des Buttons passiert.
Wird eine Variable ausgelesen, oder wirklich jedes Mal eine Datenbankverbindung aufgebaut und der Inhalt des entsprechenden Feldes an JS weitergereicht?
Ich tippe eher drauf, dass das es einmal aus der Datenbank ausgelesen und in einer Variablen gespeichert wird und du danach immer nur einfach diese Variable ausliest, statt wirklich auf die Datenbank zuzugreifen bei jedem Aufruf. Eventuell gibt es ja eine Überprüfung, ob die Variable bereits befüllt ist und nur falls nicht wird die Datenbankverbindung aufgebaut.

 

Um das wissen zu können, müssten wir aber den Code sehen. Alles andere sind nur Vermutungen.

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hier der Button:

<input type="button" id="btnTest" value="test" onclick="test('<?php echo URL?>','<?php echo $id?>')">

Hier die JS-Funktion

function test(url, id){
	$.get(url+'controller/methode/'+id, function (o){
		alert(o.Sitzplaetze);
	}, 'json');
}

Im Prinzip ist es das. Oder wollt ihr die Controller-Methode sowie dann die DB-Abfrage aus dem Model auch noch sehen, aber ich denke daran wird s nicht liegen, da die Ergebnisse ja richtig sind.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Du kannst .ajax(); statt .get(); benutzen. Dann kannst du der Funktion Parameter geben, unter anderem ob das Ergebnis gecached werden soll oder nicht.

http://stackoverflow.com/questions/8841425/how-to-set-cache-false-in-jquery-get-call

Bearbeitet von PVoss
Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...