我想在所有 ajax 调用之后调用一些 javascript 函数。我知道如何调用每个单独的 ajax 调用中的函数,如下所示:
function xyz()
{
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("links").innerHTML=xmlhttp.responseText;
*****javacsript would go here*****
}
xmlhttp.open("GET","xhr_php/site_links.php",true);
xmlhttp.send();
}
}
所以,我知道如何在每个 ajax 调用之后或内部调用它,如上所示。但我想知道是否有一个函数可以在所有/任何 ajax 调用之后调用这些函数。这样我就不必在每个 ajax 调用中编写 javascript。我认为它与 endrequesthandler 有关,但不确定它是如何用 php/javascript 编写的。我在网上发现了一些与 asp.net 有关的东西,但我使用的是 php。
我还喜欢在 ajax 调用开始时或在 ajax 调用之前调用函数的方法。
这样我就可以在 ajax 调用期间启动和停止函数,而不必在每次调用中都写这个。
感谢您的帮助。
最佳答案
你可以让它接受一个回调函数:
function xyz(callback) {
var xmlhttp;
if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
}
else { // code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
callback(this);
}
}
xmlhttp.open("GET", "xhr_php/site_links.php", true);
xmlhttp.send();
}
然后:
xyz( function( xhr ) {
alert( xhr.responseText );
});
关于php - Javascript 端 RequestHandler,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8609686/