Hi zusammen,

ich bastel gerade an einer Kleinigkeit mit Ajax und jQuery und der Safari lässt mich ein wenig verzweifeln. Folgende Ausgangssituation: In einem Link rufe ich mit dem href Attribut eine stinknormale Webseite auf, im onclick Attribut rufe ich zusätzlich noch eine Funktion auf, bsp:

HTML-Code:
<a href="foo.html" onclick="bar('123');">ein toller link</a>
Die Funktion bar(); soll den mitgegebenen Parameter nun an ein PHP Script weiterleiten, dieses schreibt den Wert in eine Textdatei. Der User soll von alledem nichts mitbekommen, weswegen ich auch einen asynchronen Request abschicke und keine Antwort erwarte:

HTML-Code:
$.ajax({
  type: "GET",
  async: true,
  url: "foo.php",
  data: "data=" + param
});
Das ganze funktioniert wunderbar, es wird meine HTML Seite aufgerufen und die Daten in die Textdatei geschrieben. Selbst, wenn das Backend mal hakt (ich habe in der PHP Datei testweise ein sleep(15); eingebaut), werden die Daten abgespeichert. Nur im Safari klappt das nicht. Weder mit noch ohne sleep. Erst wenn ich den Parameter async auf false setze, werden die Daten vom Safari aus auch abgespeichert. Dann habe ich allerdings das Problem, dass die Seite, die im href Attribut steht, erst dann aufgerufen wird, wenn der Request finalisiert ist. Das ist natürlich auch blöde, wenn ich bspw. 15 Sekunden warten muss, bis das Backend fertig ist.

Hat jemand eine Idee, wie ich das auch im Safari lösen kann? Unterstützt er überhaupt asynchrone Verbindungen? Oder kappt er die Verbindung der Funktion zum Backend, weil ich mittels href eine andere Seite aufrufe?

Bin über jeden Hinweis und Tipp dankbar.

Metty