【发布时间】:2012-05-11 20:34:05
【问题描述】:
我有一个发送 X 封邮件的 PHP 进程 每次发送邮件后,我在数据库中添加一行以告知已发送邮件。
所以,我不想创建一个进度条来告诉用户 X 邮件是在 Y 上发送的(Y = 总数)
我有两个这样的 jquery 函数:
function mail_send()
{
var refreshIntervalId;
$('.loading').css('display','block');
$.ajax({
'url': '/an/url/',
'data': {
someParam: param
},
'beforeSend':function()
{
$('#loadingBg').append('<span id="count"></span>');
refreshIntervalId =setInterval(function () {
mail_updateProgress(id);
}, 500);
}
,
'success': function (data,textStatus)
{
(....)
clearInterval(refreshIntervalId);
javascript: console.log(' send finish !!!');
}
});
}
function mail_updateProgress(id) {
javascript: console.log('updatePG');
$.ajax({
'url': '/an/url/',
'data': {
someParam: param
},
'success': function (data) {
var res = $.parseJSON(data);
javascript: console.log(' => data received ' + res.nbSended);
$('#count').html(res.nbSended + '/' + res.total);
}
});
}
$.ajax 有队列吗?我正在登录 3 件事:第一:当进程进入 updateProgress 函数时第二:当 updateProgress ajax 成功时第三:当 mail_send() ajax 成功时
日志的顺序是:
- updatePG => 100 次(我已经在我的 php 代码中休眠以进行测试)
- 发送完成!!! => 1 次
- => 收到数据 11 => X 次(我发送了 11 封邮件)
所以对我来说,它告诉我有一个 ajax 调用队列。但是我怎样才能执行我的进度条呢?
编辑: 可能是php配置问题,
谁能告诉我如何允许来自同一进程的多连接?
【问题讨论】:
-
我不完全理解您需要什么,但也许您可以创建一个文本文件,其中 PHP 脚本写入进度和一个 Ajax 函数来重复检查此文件并显示进度?
-
这是同一个问题,如何同时执行一个 $.ajax() 函数而不是另一个! :s
-
设置的时间间隔被写入! #jquery irc 的某个人告诉我看我的 apache 是否可以执行多进程,我会检查
-
Ricardo Lohmann :问题是“如何同时执行两个 ajax 请求?”