我正在页面上的许多地方通过 jquery load() 进行一些内容替换。
<script>
$(document).ready(function(){
$('#row').load('/getStudentDetails',{studentId:3});
});
</script>
在我的开发服务器上一切正常。在我的实时服务器上,有时它会给我一个“请求无效”错误,我可以在 firebug 中看到该错误。我认为服务器已经不堪重负,或者某些缓存模块可能与多个请求混淆了。我将尝试单独解决该问题,但也只是希望它在失败时重试相同的请求(一次)。有没有一种灵活的 jQuery 方法可以做到这一点?
像这样的东西可能对你有用。
function doAjax() {
$.ajax({
url: '/path/to/file',
type: 'GET',
dataType: 'html',
data: {studentId : 3},
error: function(xhr, textStatus, errorThrown) {
setTimeout('doAjax()', 5000);
}
});
}
如果你的服务器被淹没,我建议使用 setTimeout 延迟一段时间,然后再重试,否则它会对你的服务器造成更严重的打击。
编辑:我没注意到你只说了一次。您可以将 setTimeout 包装在计数器中,这样递归就不会重复。或者,如果您决定希望它继续尝试,这是一个让它一直工作直到您得到响应的好方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)