javascript中的自动刷新功能
我想在javascript中自动更新函数time(),我已经编写了以下代码:javascript中的自动刷新功能,javascript,php,Javascript,Php,我想在javascript中自动更新函数time(),我已经编写了以下代码: var time = null; setInterval(function() { time = Date(); }, 1000); console.log(time); 但它在console.log中显示null。我想在变量time 怎么了?让我们把问题分解一下 这是在服务器端生成的,不能在客户端(代码实际运行的地方)重新计算 var-time=这里您正在重新声明(并通过此掩蔽)原始time变量 con
var time = null;
setInterval(function() {
time = Date();
}, 1000);
console.log(time);
但它在console.log中显示null。我想在变量time
怎么了?让我们把问题分解一下
这是在服务器端生成的,不能在客户端(代码实际运行的地方)重新计算var-time=代码>这里您正在重新声明(并通过此掩蔽)原始time
变量
console.log(时间)
这是在interval函数范围之外调用的,因此它只运行一次(在此期间,in将打印null
)setInterval(function(){
console.log(Date())
}, 1000);
如果希望变量在interval函数的作用域之外是可访问的,可以执行以下操作
var time;
setInterval(function(){
time = Date();
console.log(time);
}, 1000);
// Now the 'time' variable will be accessible and will hold the latest date value
// For example console.log(time)
当然,您可以使用特定用途所需的任何日期/时间创建函数替换
Date()
。您定义了新的计时器变量,但没有覆盖全局变量。
此外,您的console.log超出了间隔范围,因此您可以在更改之前打印该值
以下代码可以工作:
var time = null;
setInterval(function() {
time = "test";
console.log(time);
}, 1000);
您是否正在尝试使用服务器端逻辑更新时间变量?在更改之前,您正在将该值记录到控制台。您还更改了重新声明的局部变量,而不是全局变量。您也可能有语法错误,这取决于服务器端代码输出的内容。您应该检查正在运行的实际客户端代码。此外,这还能做什么?您正在尝试每秒将变量设置为相同的值。总是相同的值。只需设置一次。使用ajax从“.php”文件中获取值,因为php在javascript之前运行,所以每次调用中只打印一个值:如果你想让它通过js使用,比如:这与OP的目标有什么关系?我解释了为什么他看到null以及重新定义时间变量@charlietflYes的问题,我想要,但我需要将
Date()
作为变量,以便在setInterval函数之外使用。@JohnDoe是否希望可以访问“time”变量?或者实际的“Date()”?我使用此脚本生成链接的变量time
,当用户访问页面时,当我有此javascript代码时,他将在那一刻获得时间,但如果它停留2、5或5秒,我希望得到最后一次,而不是在页面上输入的时间。