Ajax多次调用

时间:2013-05-22 11:52:32

标签: php javascript ajax

我需要多次调用ajax来写入linux中的命名管道。

这是我的代码。

Javascript和ajax

var count = 0;
var status = "online";

while(status=="online" && count!=25){

$.ajax({ url: 'http://192.168.5.10/Command.php',
         data: {cmd: 'GORIGHT'},
         type: 'post',
         success: function(data) {
                      console.log(data);
                  }
});

count++;
}

Command.php

if($_POST['cmd']==="GORIGHT"){

$fd = fopen("/tmp/myFIFO","w");
fwrite($fd, "GORIGHT\n");
fclose($fd);
echo "SUCCESS";
}

这是正确的做法吗?或者有更快的方法吗?这会造成延迟吗?

编辑:更改ajax网址。抱歉。

1 个答案:

答案 0 :(得分:1)

如果您需要它是同步的,您需要确保每个呼叫都等待完成前一个呼叫。像这样的事情应该是诀窍,未经考验的想法:

var count=0;
var N=25;
loop();

function loop() {
    $.ajax({ url: 'http://192.168.5.10/Command.php',
        data: {cmd: 'GORIGHT'},
        type: 'post',
        success: function(data) {
            console.log(data);
        }
    })
    .done(function(data){
        if (count < N) {
            count++;
            loop();
        }
    });
}

另一个想法(更快)可能是在 Command.php 中添加一个额外的参数,以允许您指定必须完成预定义操作的时间。你可以这样做:

var N=25;

$.ajax({ url: 'http://192.168.5.10/Command.php',
    data: {cmd: 'GORIGHT', repeat:N},
    type: 'post',
    success: function(data) {
        console.log(data);
    }
});