在机器时间更改后立即更新Date()函数结果
update Date() function result immediately after machine time change
我在程序中使用javascript的Date()
对象进行各种操作。然而,我注意到,每当机器上的时钟发生变化时,Date()
返回的时间仍然等于更改前的时间,直到更改后一分钟,直到更改生效。
时间也是23:50:39
,我手动将机器上的时间更改为23:59:50
,并刷新了我仍然会看到的页面:23:50:51
(时间进展了一点),而不是所需的时间。
有没有什么方法可以强制javascript每次执行new Date()
时拉取新机器?
V8似乎保留了一个内部缓存,其中包含用于在启动时读取日期/时间计算的各种值(此处和此处的源代码)。这是为了避免每次需要构建JS-Date对象时都进行昂贵的系统调用。
也许由于某些原因,V8无法捕捉到重置那些缓存值的日期/时间更改通知。
我也注意到了这一点。在清除浏览器数据(CTRL-SHIFT-DEL,只检查图像和文件)后,日期将反映新的系统日期,因此看起来Chrome在浏览器启动时使用了从系统日期派生的内部日期/时间值。
除了这个实验性的API之外,我不知道还有什么方法可以通过编程清除浏览器缓存。
相关文章:
- Javascript循环不会自我更新
- 添加文字和评论功能更新Div
- AngularJS:ng之后,重复$scope值未按预期更新
- 如何通过数组更新角度子范围
- Ajax聊天消息重复而不仅仅是更新
- 通过CSV文件上载更新数据库表
- 平均值:无法将数据更新到数据库
- $rootScope未使用forEach进行更新
- d3基于用户选择动态更新节点
- 有条件更新d3.js力图中节点的最佳方法
- Angular:更新一次性绑定的数据
- Javascript更新孙窗口中的表单元素
- 使用AngularJS中的筛选器更新给定的表
- 在事件上打开Materialize Date Picker
- 从选项页面更新chrome扩展清单权限
- 在机器时间更改后立即更新Date()函数结果
- aurelia自定义元素date-nifty日期选择器在更新时更新值
- $filter('date')在控制器中使用$scope变量作为格式时未更新格式
- Javascript:setDate(DATE + day)不更新月份
- 将SQL Date更新为ISO格式