Unload üzerinde Ajax ile PHP Koşu

2 Cevap php

Ben kullanıcı uzakta sayfasından gittiğinde bir php script çalıştırmak çalışıyorum. Bu şu anda kullanıyorum budur:

function unload(){
var ajaxRequest;  // The variable that makes Ajax possible!

try{
	// Opera 8.0+, Firefox, Safari
	ajaxRequest = new XMLHttpRequest();
} catch (e){
	// Internet Explorer Browsers
	try{
		ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
		try{
			ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (e){
			// Something went wrong
			window.location = "unsupported.html";
			return false;
		}
	}
}

ajaxRequest.open("GET", "ajax/cancelMatch.php", true);
ajaxRequest.send(null); 
}

Kundakçı sayesinde, ajaxRequest Nesne açık işlevi çağıran gibi görünüyor, ancak PHP çalışmaz! Bu o sayfanın boşaltma üzerine aradığını gerçeği ile ilgili bir şey var mı?

Teşekkürler. Ben daha netleştirmek bir şey varsa, söyle.

Ayrıca, ben onbeforeunload denilen bir olay buldum, ama hala varsa ben, bu çalışma için nasıl anlamaya olamaz.

2 Cevap

Emin ignore_user_abort() kısa sürede ayarlanır true yapmak gerekir. Bunun için varsayılan bir ayar varsa, bu daha iyi olurdu.

"Onbeforeunload" her tarayıcıda işe gitmiyor. ignore_user_abort() Bu emin olmak için iyi bir yoldur - chacha102 diyor gibi, PHP komut isteği sona erer, ikinci durdurma olmadığından emin olmak gerekir.

ayrıca, size basit bir şey denemek isteyebilirsiniz. isteği kıvılcım sayfada bir görüntü içine enjekte yapmanız gereken tüm olabilir.

function onunload() { 
  var i = document.createElement("img");
  i.src = "ajax/cancelMatch.php?" + Math.random();
  document.appendChild(i);
  return;
}