我正在尝试更新从MySQL提取的表中的值,但该函数未重新运行?
或者,如果还有另一种解决方案允许我每隔60秒更新一次MySQL数据库中的值,请告诉我。
编辑:错误已解决,但现在我得到一个新的错误,而不是替换表单元格中的mysql值,它将新单元格添加到表中,需要更改或添加代码的哪一部分来解决此问题? / p>
以下代码不返回错误:
<script type="text/javascript">
$(document).ready(function(){
console.log(1+0);
$.ajax({
url: 'fetch.php',
type: 'get',
//type: 'post',
dataType: 'JSON',
success: function(response){
var len = response.length;
for(var i=0; i<len; i++){
var beacon = response[i].beacon;
var location = response[i].location;
var tr_str = "<tr>" +
"<td align='center'>" + beacon + "</td>" +
"<td align='center'> <span class='minutes'>00</span>:<span class='seconds'>00</span> </td>" +
"</tr>";
$("#userTable tbody").append(tr_str);
}
setInterval(updateTable, 10000);
}
})
})
function updateTable() {
console.log(1+1);
$.ajax({
url: 'fetch.php',
type: 'get',
//type: 'post',
dataType: 'JSON',
success: function(response){
var len = response.length;
for(var i=0; i<len; i++){
var beacon = response[i].beacon;
var location = response[i].location;
var tr_str = "<tr>" +
"<td align='center'>" + beacon + "</td>" +
"</tr>";
$("#userTable tbody").append(tr_str);
}
}
});
};
</script>
答案 0 :(得分:2)
如果格式正确,您会发现setInterval
位于函数内部...
您已将其放置在$(document).ready
回调函数中。
$(document).ready(function () {
$.ajax({
url: 'fetch.php',
type: 'get',
//type: 'post',
dataType: 'JSON',
success: function (response) {
var len = response.length;
for (var i = 0; i < len; i++) {
var beacon = response[i].beacon;
var location = response[i].location;
var tr_str = "<tr>" +
"<td align='center'>" + beacon + "</td>" +
"<td align='center'> <span class='minutes'>00</span>:<span class='seconds'>00</span> </td>" +
"</tr>";
$("#userTable tbody").append(tr_str);
}
// <===== You should place youre set interval here
}
})
});
function updateTable() {
console.log(1 + 1);
$.ajax({
url: 'fetch.php',
type: 'get',
//type: 'post',
dataType: 'JSON',
success: function (response) {
var len = response.length;
for (var i = 0; i < len; i++) {
var beacon = response[i].beacon;
var location = response[i].location;
var tr_str = "<tr>" +
"<td align='center'>" + beacon + "</td>" +
"</tr>";
$("#userTable tbody").append(tr_str);
}
}
});
var updateTableInterval = setInterval(updateTable, 10000);
}
答案 1 :(得分:0)
您似乎正在从内部 setInterval(updateTable)
呼叫updateTable
。
您不是从updateTable
的外部的任何地方调用updateTable
,这意味着该函数从未运行,并且setInterval
也从未执行。 / p>
要解决此问题,请:
setInterval
的{{1}} 放在updateTable
之外,或updateTable()
。我推荐前者。
答案 2 :(得分:0)
代替使用setInterval,
pd.DataFrame(tup,columns=['letter','number']).merge(df,how='left')
在处理和更新表后尝试使用setTimeout:
setInterval(updateTable, 10000);
这将使您的代码在发出其他请求之前等待信息到达,而不被视为DoS攻击。
让我知道这是否对您有用。我们可以尝试其他方法。