【发布时间】:2015-06-10 20:26:08
【问题描述】:
有没有办法通过 Liquid 或 JavaScript 从 bigcartel 的服务器获取当前日期和时间?我正在我的商店中构建一些需要具有一致(非客户端)时间源的自定义功能。我只需要在每次页面加载时访问它一次。
这是我迄今为止尝试过的,基于another date-related bigcartel question:
var currentDate = new Date({{ 'Today' | date: "%Y, %m, %d, %H, %M" }});
currentDate.setMonth(currentDate.getMonth() - 1);
这确实检索了今天的日期,但是当我刷新页面时它并没有持续更新。任何帮助将不胜感激。谢谢。
编辑:每次我编辑/保存并重新加载特定页面后,或者如果在第一个页面加载后经过一定时间(我没有做足够的测试来固定),Liquid 将获得一个新的日期/时间到底要花多少时间……可能是 2 或 3 小时……或更多?)。
此外,卡住的日期/时间对于每个产品页面都是唯一的。例如,如果我在 9:30 加载产品页面 A,在 9:32 加载产品页面 B,它们都会卡在相应的时间。两个页面都使用相同的代码呈现。
我以前从未使用过 Liquid,但我认为它应该在每次页面加载时从服务器检索新数据,类似于 PHP。我错了吗?
编辑 2:它变得更奇怪了。有时我会在给定产品页面的 URL 末尾附加一个查询字符串(例如?comicID=225)。但是,如果我更改查询字符串中的数字(或者甚至只是输入随机垃圾),它将检索一个新的卡住日期。因此,任何唯一的 URL 似乎都会在首次加载时获得唯一的卡住日期!
【问题讨论】:
-
使用 Liquid 第一次查看后日期是否会更新?我认为 Liquid 会被编译成静态内容,因此不会在您每次刷新页面时重新评估。
-
针对您的问题,我添加了更多信息。
-
好的,此时我的想法是,Liquid 脚本每隔几个小时才会重新评估一次,或者所提供的内容会被您的浏览器缓存。在包含 bigcartel 日期的 HTTP 响应中是否指定了缓存标头?
-
@ErikGillespie,我不确定您的问题的答案,但您对查看 HTTP 响应标头的建议确实将我引向了一个有用的方向,所以谢谢!
标签: javascript date time liquid bigcartel