2012-04-02 9 views
1

Ich habe einen PHP-Skript, das im Hintergrund und mit Hilfe vonJQuery PHP ohne Antwortfunktion

ignore_user_abort(true); 

Script ausgeführt werden kann, sogar den Browser schließen ausgeführt werden muß.

Aber ich will nicht Browser schließen jedes Mal,

$.ajax({ 
     type: 'POST', 
     url: 'myphp.php', 
     data: values, 
      success: function(re) {alert("somthing");} 
}); 

Browser immer für AJAX Antwort wartet auch ohne Erwähnung von success:

Gibt es eine Möglichkeit Browser Wartezeit zu stoppen, so dass Der Benutzer kann die Website normal durchsuchen, ohne auf die Fertigstellung des PHP-Skripts zu warten.

Antwort

0

Griff Anfrage mit jQuery XHR

var xmlHttpRequest = $.ajax({ 
    //.... 
}); 

xmlHttpRequest.abort(); 
+0

Danke für Ihre Antwort, leider funktioniert es nicht. Browser wartet weiter (beschäftigt). Gibt es einen Weg für 'afterSend'? – fmask

0

Am Anfang Ihres PHP-Code versuchen, dies zu setzen:

ob_start(); 
ob_end_flush(); 

, dass der Inhalt auf Ihren Ajax-Skript senden und sie stoppen.

ich nicht versuchen, so ist es nur eine Idee;)

0

Sie

fclose(STDIN); 
fclose(STDOUT); 
fclose(STDERR); 

obwohl apparently versuchen könnten, ob es hängt von der genauen PHP-Version funktioniert. Oder Sie können den AJAX-Aufruf von der Clientseite nach einer Weile beenden (möglicherweise, nachdem Sie mit dem Empfang von Inhalten begonnen haben). Die AJAX-Aufrufe lauten: "Benutzer können die Website normal durchsuchen, ohne warten zu müssen", auch wenn sie gerade ausgeführt werden. Daher bin ich mir nicht sicher, ob es einen Sinn hat, was Sie zu tun versuchen.