使用cron-job进行AJAX操作?

时间:2014-01-19 18:23:52

标签: php jquery ajax cron

我尝试用PHP更新这么多行,我不得不用ajax来实现它(因为服务器中的执行时间太短,无法执行所有行)。所以我创建了一个代码,该代码应该使用里面的代码调用.php文件,它会在mysql表中更新已发送的ROW id。

我有一个代码

<html>
<head>
    <title>Cron job!</title>
    <meta charset="UTF-8" />
    <script src="jquery.js"></script>
</head>

<html>
<body>

<div id="body">

</div>

<script>
    $(document).ready(function(){
        var array_items = <?=$table_info?>;
        var updated_items = 0;

        for(var i=0; i<array_items.length; i++){
            // pradedam kreipimąsi į kiekvieną rową jo updeitui su ajax
            $.ajax({
                url: "ajax_cron.php",
                type: 'POST',
                dataType: 'json',
                data: {update_id : array_items[i]['ids']},
                success: function (data) {
                    // kreipimąsis pavyko 
                    if(data.updated_id){
                        updated_items += 1;
                    }
                    $("#body").html(updated_items + " iš " +array_items.length + " updeitinta sėkmingai");                   
                }, error: function(e){
                    console.log(e.message);
                }
            });            
        }
    });
</script>

</body>
</html>

当我用浏览器打开url但是当我用CRON JOB调用这个脚本时它起作用 - ajax不起作用..那么如何让它工作?

1 个答案:

答案 0 :(得分:0)

Ajax是一种客户端技术,因此它需要客户端(浏览器)能够执行脚本,最重要的是需要Javascript可以读取的DOM元素。

另一方面,Cron Job在CLI上运行,当脚本在那里运行时,它不知道有关DOM的任何信息。

换句话说,使用我们现有的网络技术,您无法实现的目标。但是,你总是可以在cronjob上运行服务器端脚本,但是客户端脚本,不,你不能。