Hi Chris,
leider nein, das Ergebnis kommt nicht aus dem Cache. Hatte ich auch schon gedacht, kann ich aber 100% ausschließen. Das Ergebnis der Abfrage selbst ist ein JSON-Objekt mit einem Microtime und das ist immer ein anderer. Den Inhalt der Abfrage sehe ich in der Console, aber eben nur das und nur da.
Und wie gesagt, das ist ja das Komische. Rufe ich mit sync() -> AjaxRequest() auf und mit resync() -> AjaxRequestNEU(), dann geht es ja und ich sehe die korrekten Werte auf der Webseite. Beide AjaxRequest und AjaxRequestNEU sind dann aber halt identische Kopien und beide rufen die sync.php auf.
Mal als Beispiel, Funktionen aber gekürzt (sind aber die von oben)
function AjaxRequest(uri,callback)
{
console.log('3');
var request = new XMLHttpRequest;
request.onreadystatechange = function()
{
if (request.readyState == 4)
{
console.log('4');
}
};
};
function sync()
{
console.log('1');
AjaxRequest('/sync.php', function(data)
{
console.log('2');
});
}
Alles anzeigen
Erstaufruf laut Console
Log: 1
Log: 3
GET XHR Request Status 200
Log: 4
Log: 2
Passt also
Rufe ich das dann noch mal auf oder per resync, dann kommt nur
Log: 1
GET XHR Request Status 200
Alles innerhalb von "AjaxRequest", also Logs, inkl. dem "Log 3" und der weitere Programmcode "verschwindet". Dennoch scheint er request.open und request.send aber auszuführen, denn der XHR-Request wird ja erkannt und ausgeführt.