2017-08-22 22 views
3

我有一个代码,它能正常工作,它同时显示所有通知。当某事完成时,将ajax进程1加1显示

我有问题..

时的功能之一是做如何获得通知? (通知一个接一个地出现)


indexing.php文件中有几个功能。

$preproses = $_POST["preproses"]; 
if($preproses == "preproses"){ 
    //mulai proses 
    set_time_limit(0); 
    buatindex(); 
    hitungbobot(); 
    panjangvektor(); 
} 

function buatindex() { 
    code 
} 

function hitungbobot() { 
    code 
} 

function panjangvektor() { 
    code 
} 

index.php有调用该函数

<script type="text/javascript"> 
function preproses(){ 

     var preprosesx = "preproses"; 
     $.ajax({ 
     type : "POST", 
     url : "indexing.php", 
     data: {preproses:preprosesx}, 
     error: function(){ 
     $("#notif").prepend("fail"); 
     }, 
     success: function(html){ 
     $("#notif").prepend("Process done <br/>"+html); 
     }, 
     }); 
     return false; 
    } 
</script> 

<a href="#" onclick="preproses()">click to precess</a> 

如果所有的进程都完成了代码,会显示一条通知

<span id="notif"></span> 
+0

你已经写了一个ajax调用,特别是时间间隔调用,并检查响应,如果它完成,你可以通知用户 –

+0

我的意思并不是所有的都出现,但一个接一个 –

+0

好吧,所以你应该打电话给在设定的时间间隔内起作用并在您显示时清除通知 –

回答

1
$preproses = $_POST["preproses"]; 
if($preproses == "preproses"){ 
    //mulai proses 
    set_time_limit(0); 

    setTimeout(function(){ buatindex() }, 3000); 

    setTimeout(function(){ hitungbobot() }, 3000); 

    setTimeout(function(){ panjangvektor() }, 3000); 
    console.log("Completed all"); 
} 

function buatindex() { 
    code 
} 

function hitungbobot() { 
    code 
} 

function panjangvektor() { 
    code 
} 

你也可以console.log在ajax成功响应。

是这样的:JsFiddle Example

+0

嗨家伙@Jaymin Noob,错误代码 '解析错误语法错误意外'}'在线6' –

+0

第6行是哪一行? –

+0

'setTimeout(function(){buatindex()},3000);' –

0

算你之后的参数($ _ POST [ “preproses”]),并保持到像变种数= “” 的JavaScript变量; 。你也可以使用一个隐藏的文本变量,每发送一次通知后都会增加1。毕竟通知值发送这个隐藏的变量将等于计数变量。那么你可以确定所有通知都已发送。希望这会为你工作.. :)

+0

你能告诉我完整的代码吗? –

0

你没有试过async: false呢?这将停止进一步的处理,直到一个Ajax请求完成。

相关问题