【发布时间】:2013-01-01 13:05:36
【问题描述】:
我想知道,假设您对运行 PHP 代码的页面进行了 ajax 请求。页面输出一些数据(使用 flush() 方法或其他方法),但由于 30 秒超时或其他错误,php 请求结束。
现在,当请求结束时,我想在客户端了解它并重新启动请求。
即假设我有这样的东西
xmlhttp.onreadystatechange=function(){
if(xmlhttp.readyState==3 && xmlhttp.status==200){
document.getElementById("A").innerHTML=xmlhttp.responseText;
}
else if(xmlhttp.readyState==4 && xmlhttp.status==200){
document.getElementById("A").innerHTML=xmlhttp.responseText;
//plus some additional code to end the process
}
else if(xmlhttp.status== SOMETHING /*WHAT DO I ADD HERE TO KNOW THAT THE SERVER HAS TIMED OUT OR SOMETHING SO I CAN RESTART THE XMLHTTP CYCLE */){
//code to resend xmlhttp request.
}
}
【问题讨论】:
-
在您的问题中,您要求检查在服务器端,但在您的代码中,您在 javascript 中有空间。由于您的 ajax 是异步的,它可以被触发,然后用户可以离开页面。该脚本将没有机会再次执行或通知服务器发生超时。您实际上必须强制用户留在您的页面上,直到响应返回。您可能必须通过在服务器上而不是 js 上跟踪来解决此问题。
-
我的错,这是一个错字。更正。另外,我希望支票在客户端。如果用户离开页面,dosnet 真的很重要。
标签: php javascript ajax