Javascript 函数未在setInterval上运行
我试图更新从MySQL中拉入的表中的值,但函数没有重新运行 或者,如果有另一种解决方案允许我每隔60秒更新MySQL数据库中的值,请告诉我 编辑:错误已经解决,但现在我得到了一个新的错误,而不是替换表单元格中的mysql值。它向表中添加了新的单元格。要解决这个问题,需要更改或添加代码的哪部分 下面的代码不返回任何错误:Javascript 函数未在setInterval上运行,javascript,jquery,ajax,setinterval,Javascript,Jquery,Ajax,Setinterval,我试图更新从MySQL中拉入的表中的值,但函数没有重新运行 或者,如果有另一种解决方案允许我每隔60秒更新MySQL数据库中的值,请告诉我 编辑:错误已经解决,但现在我得到了一个新的错误,而不是替换表单元格中的mysql值。它向表中添加了新的单元格。要解决这个问题,需要更改或添加代码的哪部分 下面的代码不返回任何错误: <script type="text/javascript"> $(document).ready(function(){ console.log(1+0); $.a
<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>
$(文档).ready(函数(){
控制台日志(1+0);
$.ajax({
url:'fetch.php',
键入:“get”,
//键入:“post”,
数据类型:“JSON”,
成功:功能(响应){
var len=响应长度;
对于(var i=0;i如果格式化好,您将看到您的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);
}
$(文档).ready(函数(){
$.ajax({
url:'fetch.php',
键入:“get”,
//键入:“post”,
数据类型:“JSON”,
成功:功能(响应){
var len=响应长度;
对于(变量i=0;i //如果格式化良好,您将看到您的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);
}
$(文档).ready(函数(){
$.ajax({
url:'fetch.php',
键入:“get”,
//键入:“post”,
数据类型:“JSON”,
成功:功能(响应){
var len=响应长度;
对于(变量i=0;i //看起来您正在从updateTable
内部调用setInterval(updateTable)
您没有从updateTable
之外的任何地方调用updateTable
,这意味着函数从未运行过,并且setInterval
从未执行过
要解决此问题,请执行以下操作之一:
将您的setInterval
置于updateTable
之外,或
将updateTable()
添加到脚本末尾
我推荐前者。看起来您正在从内部调用setInterval(updateTable)
您没有从updateTable
之外的任何地方调用updateTable
,这意味着函数从未运行过,并且setInterval
从未执行过
要解决此问题,请执行以下操作之一:
将您的setInterval
置于updateTable
之外,或
将updateTable()
添加到脚本末尾
我建议使用前者。而不是使用setInterval
setInterval(updateTable,10000);
处理并更新表后,请尝试使用setTimeout:
function updateTable() {
$.ajax({
...
,complete: function(data){
// do something
setTimeout(updateTable, 10000);
...
});
}
这将允许您的代码在发出另一个请求之前等待信息到达,而不会被视为DoS攻击
让我知道这是否适合您。我们可以尝试其他方法。而不是使用setInterval
setInterval(updateTable,10000);
处理并更新表后,请尝试使用setTimeout:
function updateTable() {
$.ajax({
...
,complete: function(data){
// do something
setTimeout(updateTable, 10000);
...
});
}
这将允许您的代码在发出另一个请求之前等待信息到达,而不会被视为DoS攻击
让我知道这是否适合您。我们可以尝试其他方法。为什么setInterval(updateTable,10000)
insideupdateTable
?关于编辑:如果您的原始问题已得到回答,请将该答案标记为答案,然后再问一个新问题。@freedomn-m我已将答案标记为正确,不想问太多问题,因为我以前被用户标记为问太多问题和阻塞d再问90天OK,我不知道人们会因为问后续问题而投票反对。这似乎是这里的规则-问一个问题,得到一个答案,不要改变问题。也许把你的后续作为对答案的评论,有时候人们很好,如果没有太多额外的工作,他们会跟进。至于你的编辑:此代码添加新单元格:$(“#userTable tbody”).append(tr#u str);
为什么setInterval(updateTable,10000)
insideupdateTable
?关于编辑:如果您的原始问题已得到回答,请将该答案标记为答案,然后再问一个新问题。@freedomn-m我已将答案标记为正确,不想问太多问题,因为我以前被用户标记为问太多问题和阻塞d再问90天OK,我不知道人们会因为问后续问题而投票反对。这似乎是这里的规则-问一个问题,得到一个答案,不要改变问题。也许把你的后续作为对答案的评论,有时候人们很好,如果没有太多额外的工作,他们会跟进。至于你的编辑:此代码添加新单元格:$(“#userTable tbody”).append(tr#u str);