我们花了两个多小时试图找到一种最佳方式来显示 ajax 回调函数渲染的结果,让我解释一下我到底想要做什么以更好地理解...
我有一个“发送”按钮,在单击事件时我定义了一个函数,将 $category_id 发送到另一个页面,然后我从数据库中获取所有收件人并为每个收件人发送一封电子邮件。现在整个过程工作正常,但是在每个循环之后:
(foreach ($recipients as $recipient))
{send_mail();
echo "email sent successfully to ....";}
我正在返回一条 echo 语句,告知电子邮件已正确发送给该收件人。 Javascript 函数被定义为将这些回显结果附加到 div 中,但不是在渲染后显示每个语句,而是将它们全部收集起来并立即显示。
$.ajax({
async: true,
url: 'send_emails.php?category='+category,
success: function(r){
$('#status').append(r); //this happens all at once
}
});
有更好的主意来实现我的目标吗?
提前致谢
最佳答案
当 XHR 状态更改为 200
(成功)时,会触发调用的 ajax 的 Success
事件。仅当后端完成处理时才会发生这种情况。
您需要检查的是 XHR readyState
属性。在处理请求期间设置为“3”。然后,您可以将 PHP 脚本的更新发送到网页。
关于javascript - 在 ajax 回调函数的每个循环之后附加输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26862362/