我使用标准的document.lastModified
Javascript属性来输出页面的最后修改日期,但它输出的是实际的当前日期和时间。你有什么线索可以解释为什么它会这样行事,而不是输出页面的实际最后修改属性?这种情况在本地(我的机器上)和交付服务器上发布的页面上都会发生。
我使用标准的document.lastModified
Javascript属性来输出页面的最后修改日期,但它输出的是实际的当前日期和时间。你有什么线索可以解释为什么它会这样行事,而不是输出页面的实际最后修改属性?这种情况在本地(我的机器上)和交付服务器上发布的页面上都会发生。
document.lastModified 通常基于 HTTP 响应头中的 Last-Modified (RFC2822)。Last-Modified 通常与请求头字段 If-Modified-Since 结合使用,用于缓存目的。
就像其他头字段一样,返回的值取决于服务器实现。回复您的 HTTP 请求的服务器软件可能会在 HTTP 响应中返回 Last-Modified 头字段,也可能不会。
在您运行此代码的页面上,服务器只会返回当前日期。此页面也是如此。
但是,在 Dev Tools 中执行 document.lastModified (例如在 https://developer.mozilla.org/en-US/docs/Web/API/document.lastModified 上),您将得到 11/13/2013 09:13:29
在 Firefox 中使用 Firebug 或在 Chrome 中使用 Chrome Dev Tools,您可以在 网络 选项卡中查看检查 HTTP 流量数据。
在我的硬盘上测试了lastModified的本地文件。 Chrome返回当前时间/日期,而不是文件保存时的时间/日期。 Internet Explorer和Firefox返回文件保存的时间/日期。 所以这是Chrome的一个bug。 获取页面检查userAgent中的Chrome并警告用户或禁用代码。
引用
if(navigator.userAgent.indexOf("Chrome/")>0){ alert("Chrome bug.\n请使用其他浏览器。\n一个可以工作的。"); }
引用
lastModified的其他问题。 它返回一个字符串而不是日期对象。因此无法使用date.getFullYear() 该字符串采用美国格式而不是标准格式d/mm/yyyy。
lastModified
是响应头中的一个值。您是否在服务器上动态创建此资源? - srquinn