我的代码如下`
-----------这是问题代码------
秒
`
-----------这是问题代码------
-----------这是修改了today的获取方式的正常代码------
本博已运行秒
-----------这是修改了today的获取方式的正常代码------
本想简化代码只留下秒方便各位看,但是发现只留下秒就没有明显的延迟了,而且如果把today变量改成today=new Date();从本地获取时间就没问题了,但是本地是不准的,想从服务器获取,而且我的代码只有第一次运行的时候调用了today,第二次运行完全是本地js自行加秒数,为什么还会有这么大的延迟。很不解。
运行环境在本地和云端都测试了都是有延迟。
延迟是不规律的加秒数,有时候1秒运行一次,有时候两秒运行一次。
具体效果各位可以本地创建test.php运行。按道理可能是js运行效率慢,可是这无法解释为什么同样的代码只是改变today的获取方式从服务器获取改成本地就没有延迟了。
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
计时器没有延迟,是你写的代码中最后获取秒的时候,浮点数的精度不同,导致第一种方法中秒的计算有误,有时候会出现两次循环秒数值一样的情况
第一个改成这样
改成这样是让你理解,是浮点数精度不同造成两者计时不一样。其实你第二种累加下去误差足够大也有可能出现两秒跳一次的情况。
本质上还是计算方式有问题,整数计算就能解决为何要用浮点数?
你说打了那个time()出来就慢了,你逗我呢?
还有js是单线程,所以js的定时器都是不准确的,如果不修正误差的话,一直累计,误差会越来越大