我的问题: 无限循环的ajax调用是否会产生问题?
鉴于代码如下:
ajaxcall();
function ajaxcall(){
jQuery.ajax({
type: "POST",
url: myurl,
data: mydata,
cache: false,
success: function(data){
if (something )
{
ajaxcall();
}
},
error: function(){},
complete: function(){}
});
}
如您所见,在执行ajaxcall时,如果something
为真,它将再次执行ajaxcall()
。
如果something
条件每次都为真,是否会导致导航器或服务器或其他问题?如果“是的话会出现大问题”,有什么方法可以防止这种情况发生?
感谢您的关注......
更新后更新
我问这个是因为在检查我的WordPress登录页面时,我想知道会不会发生:
如果有意图的人,打开导航器检查员在表单中找到输入的名称以生成数据[在这种情况下'log'和'pwd'],并使用这种代码来查找登录名[,和在密码之后]使用导航器的控制台。
对返回的数据进行条件化。
sendCheckFormAnswer();
function sendCheckFormAnswer(){
jQuery.ajax({
type: "POST",
url: myLoginPostUrl,
data: {log:generatedLogin,pwd:generatedPassword},
cache: false,
success: function(data){
if (data.indexOf(badLoginMessage)>=0)
{
codeTogenerateANewLogin();
sendCheckFormAnswer();
} else {
alert(generatedLogin);
}
},
error: function(){},
complete: function(){}
});
}
另外,这是我的登录表单页面:
<form name="loginform" id="loginform" action="http://www.###########.fr/wp-login.php" method="post">
<p>
<label for="user_login">Identifiant<br>
<input type="text" name="log" id="user_login" class="input" value="" size="20"></label>
</p>
<p>
<label for="user_pass">Mot de passe<br>
<input type="password" name="pwd" id="user_pass" class="input" value="" size="20"></label>
</p>
<p class="forgetmenot"><label for="rememberme"><input name="rememberme" type="checkbox" id="rememberme" value="forever"> Se souvenir de moi</label></p>
<p class="submit">
<input type="submit" name="wp-submit" id="wp-submit" class="button button-primary button-large" value="Se connecter">
<input type="hidden" name="redirect_to" value="http://www.saint-pierre-de-curtille.fr/wp-admin/">
<input type="hidden" name="testcookie" value="1">
</p>
</form>
错误的登录和错误的密码返回错误的登录消息。良好的登录和错误的密码会返回错误的密码消息。
答案 0 :(得分:2)
这取决于你想要做什么。如果您要显示通知消息或类似的东西,那么您应该使用setTimeout函数。所以它在假的时候停止或继续。
此外,您应该考虑使用GET而不是POST。获取发送一个标题并且相对更快。
答案 1 :(得分:0)
您可能希望使用较短的setTimeout()进行第二次调用。除此之外,它是一种非常常见的技术,它引起的唯一问题是提高您的请求。
答案 2 :(得分:0)
当然它可能会导致问题,不断地向您的服务器发送请求,这会加上浏览器或其他已加载该页面的客户端的数量......如果您询问它是否会导致问题浏览器,浏览器不会特别关心这种情况发生,您可能会看到这些请求的等待时间增加,因为越来越多的客户端不断地点击您的服务器...为了防止这种情况,我建议您重新访问其余的这个不断的请求命中服务器,看看是否有更好的方法来处理这类事情......