我尝试用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不起作用..那么如何让它工作?
答案 0 :(得分:0)
Ajax是一种客户端技术,因此它需要客户端(浏览器)能够执行脚本,最重要的是需要Javascript可以读取的DOM元素。
另一方面,Cron Job在CLI上运行,当脚本在那里运行时,它不知道有关DOM的任何信息。
换句话说,使用我们现有的网络技术,您无法实现的目标。但是,你总是可以在cronjob上运行服务器端脚本,但是客户端脚本,不,你不能。