Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/469.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
需要帮助使用jQuery和javascript创建实时可更新计时器吗_Javascript_Php_Jquery_Html - Fatal编程技术网

需要帮助使用jQuery和javascript创建实时可更新计时器吗

需要帮助使用jQuery和javascript创建实时可更新计时器吗,javascript,php,jquery,html,Javascript,Php,Jquery,Html,好几天来,我一直在stack overflow和其他编程网站/论坛上讨论不同的问题,但我找不到问题的答案 基本上,我想做的是创建一个计时器,可以由另一个网页实时更新 由于服务器的限制,我不得不使用jQuery、javascript和PHP来实现这一点,我不能使用任何更高级的语言 在我的代码中有一些东西需要上交,我无法克服这个问题 下面我将发布整个前端代码 有人能告诉我为什么我的代码不起作用吗 var firstTimer=10; var x=10; jQuery.ajax({ 数据类型:“js

好几天来,我一直在stack overflow和其他编程网站/论坛上讨论不同的问题,但我找不到问题的答案

基本上,我想做的是创建一个计时器,可以由另一个网页实时更新

由于服务器的限制,我不得不使用jQuery、javascript和PHP来实现这一点,我不能使用任何更高级的语言

在我的代码中有一些东西需要上交,我无法克服这个问题

下面我将发布整个前端代码

有人能告诉我为什么我的代码不起作用吗

var firstTimer=10;
var x=10;
jQuery.ajax({
数据类型:“json”,
键入:“GET”,
url:“myapi.php”,
数据:“,
成功:功能(数据){
firstTimer=data.minuti;
x=data.minuti;
}
});
功能启动计时器(持续时间、显示){
var定时器=持续时间,分钟,秒;
setInterval(函数(){
分钟=parseInt(计时器/60,10)
秒=parseInt(计时器%60,10);
分钟=分钟<10?“0”+分钟:分钟;
秒=秒<10?“0”+秒:秒;
display.textContent=分钟+“:”+秒;
jQuery.ajax({
数据类型:“json”,
键入:“GET”,
url:“myapi.php”,
数据:“,
成功:功能(数据){
x=data.minuti;
}        
});
if(firstTimer!=x){
位置。重新加载(true);
}
如果(--定时器<0){
警报(“时间到期”);
}
}, 1000);
}
window.onload=函数(){
jQuery.ajax({
数据类型:“json”,
键入:“GET”,
url:“myapi.php”,
数据:“,
成功:功能(数据){
firstTimer=data.minuti;
x=data.minuti;
}
});
minuti=数字(第一个计时器);
五分钟=60*分钟,
display=document.querySelector(“#time”);
startTimer(五分钟,显示);
};

从外观上看,您似乎已经遇到了异步的辉煌奇迹。您的代码的结构就像是以顺序的方式从上到下运行一样,但是,由于您使用异步请求,情况并非如此。关于这件事,请参考更多的,嗯,雄辩的解释


简而言之:对
$.ajax()
调用的回调将在周围的代码之后运行,包括它们后面的行。这意味着
minuti=Number(firstTimer)
窗口中。在服务器设置
minuti
之前,实际执行onload
处理程序。确保只有在异步调用完成后才执行所有代码也可以解决您的
NaN
问题。您可以在不同的地方进行几个
控制台.log
调用,以实际掌握所用变量的当前值。

请告诉我们代码所在的文件名以及timerapi.php的内容。您必须提供关于工作流程和所使用的var名称的详细说明。乍一看,您希望下面的代码行能够正确使用ajax结果。但事实并非如此。如果ajax运行,则可以/将在ajax请求返回任何结果之前执行它后面的下一个代码行。因此,以下代码行必须移到
success
回调中。感谢您的快速回复,当我理解了我必须做的简单事情后,真的让我克服了所有的问题。