如何在另一个函数中调用 setinterval 函数不起作用
How to call setinterval function in another function is not working
我想在 Ajax 进程进行时显示更新的记录数。当我单击开始进程按钮时,updateRecords() 函数将执行,它将在 database.So 中一条一条地更新记录状态,同时我想显示等待记录数。为此,当用户单击在 strat process 按钮上,我想使用 setinterval 调用 displayWaitingRecords()。
我正在从 updateRecords()
中这样调用该函数
clear_Process = setInterval(function(){displayWaitingRecords()},200);
但是 displayWaitingRecords()
直到 updateRecords()
过程才会调用 completes.But 我的要求是 displayWaitingRecords()
也将与 updateRecords()
同时执行。
显示更新记录数的函数
function displayWaitingRecords()
{
jQuery.ajax({
type: 'GET',
crossDomain:true,
async: false,
url: "/curlRRQCount.php",
success: function(count){
if(count)
{
jQuery("#processed_poids_div").html("Processed Order ids:"+count) ;
}
}
});
}
点击启动进程按钮时的功能
var clear_Process = "";
function updateRecords()
{
clear_Process = setInterval(function(){displayWaitingRecords()},200);
var str = jQuery("#rrq_form :input[value!='']").serialize();
jQuery.ajax({
async: false,
type: 'POST',
data : str,
url: "/updaterecord_status.php",
success: function(valid_result)
{
if(jQuery.trim(valid_result) == 'Success')
{
jQuery("#rrq_load_img").hide();
jQuery("#rrq_orders_status").html("some success message");
}
}
});
}
我哪里做错了?任何帮助将不胜感激。
您已设置async: false
。所以 ajax 调用将同步处理。将其设置为 false 或将其保留(因为 true 是默认值):
var clear_Process = "";
function updateRecords()
{
clear_Process = setInterval(function(){displayWaitingRecords()},200);
var str = jQuery("#rrq_form :input[value!='']").serialize();
jQuery.ajax({
async: true,
type: 'POST',
data : str,
url: "/updaterecord_status.php",
success: function(valid_result)
{
if(jQuery.trim(valid_result) == 'Success')
{
jQuery("#rrq_load_img").hide();
jQuery("#rrq_orders_status").html("some success message");
}
}
});
}
如果省略它,结果相同:
function displayWaitingRecords()
{
jQuery.ajax({
type: 'GET',
crossDomain:true,
url: "/curlRRQCount.php",
success: function(count){
if(count)
{
jQuery("#processed_poids_div").html("Processed Order ids:"+count) ;
}
}
});
}
我想在 Ajax 进程进行时显示更新的记录数。当我单击开始进程按钮时,updateRecords() 函数将执行,它将在 database.So 中一条一条地更新记录状态,同时我想显示等待记录数。为此,当用户单击在 strat process 按钮上,我想使用 setinterval 调用 displayWaitingRecords()。
我正在从 updateRecords()
clear_Process = setInterval(function(){displayWaitingRecords()},200);
但是 displayWaitingRecords()
直到 updateRecords()
过程才会调用 completes.But 我的要求是 displayWaitingRecords()
也将与 updateRecords()
同时执行。
显示更新记录数的函数
function displayWaitingRecords()
{
jQuery.ajax({
type: 'GET',
crossDomain:true,
async: false,
url: "/curlRRQCount.php",
success: function(count){
if(count)
{
jQuery("#processed_poids_div").html("Processed Order ids:"+count) ;
}
}
});
}
点击启动进程按钮时的功能
var clear_Process = "";
function updateRecords()
{
clear_Process = setInterval(function(){displayWaitingRecords()},200);
var str = jQuery("#rrq_form :input[value!='']").serialize();
jQuery.ajax({
async: false,
type: 'POST',
data : str,
url: "/updaterecord_status.php",
success: function(valid_result)
{
if(jQuery.trim(valid_result) == 'Success')
{
jQuery("#rrq_load_img").hide();
jQuery("#rrq_orders_status").html("some success message");
}
}
});
}
我哪里做错了?任何帮助将不胜感激。
您已设置async: false
。所以 ajax 调用将同步处理。将其设置为 false 或将其保留(因为 true 是默认值):
var clear_Process = "";
function updateRecords()
{
clear_Process = setInterval(function(){displayWaitingRecords()},200);
var str = jQuery("#rrq_form :input[value!='']").serialize();
jQuery.ajax({
async: true,
type: 'POST',
data : str,
url: "/updaterecord_status.php",
success: function(valid_result)
{
if(jQuery.trim(valid_result) == 'Success')
{
jQuery("#rrq_load_img").hide();
jQuery("#rrq_orders_status").html("some success message");
}
}
});
}
如果省略它,结果相同:
function displayWaitingRecords()
{
jQuery.ajax({
type: 'GET',
crossDomain:true,
url: "/curlRRQCount.php",
success: function(count){
if(count)
{
jQuery("#processed_poids_div").html("Processed Order ids:"+count) ;
}
}
});
}