是否可以以可从多个URI请求的方式缓存HTML页面?

时间:2013-12-12 14:57:39

标签: javascript html http caching single-page-application

我正在使用友好的URL构建单页Web应用程序。例如,对于聊天,您可以请求/chat/roomname/chat/roomname2连接到其他聊天室。由于这是SPA,因此这两者都会产生相同的HTML内容。

是否可以告诉浏览器将这两个页面缓存为单个页面(如同在/ chat / roomname也会在浏览器中缓存/ chat / roomname2),或者会产生类似效果的东西?这样,HTML内容可能很大,只需要加载一次。

或者我可以做/#/ chat / roomname或类似的,但如果上述情况可能,我不愿意。

1 个答案:

答案 0 :(得分:2)

单独的路径是浏览器的独立内容。甚至具有不同查询参数的相同页面也被视为不同(因此,“缓存清除”技术)。然而...

你可以:

  • 将所有脚本卸载到外部脚本,以便浏览器将它们与页面分开。
  • 同样使用CSS。
  • 将页面保持在最低限度。
  • 如果资源(脚本,样式,图片)不会长时间被修改,您可以为它们设置更长的到期时间。
  • 您可以使用AJAX在模板中飞行,而不是使用HTML加载整个布局。这样,那些布局请求也会被缓存。让JS在需要时组装它们。

最后,您的页面将缺少可以使用JS飞行和组装的所有JS,CSS和标记。这将使页面比平常更轻。您可以通过缩小脚本和样式,压缩图像,压缩HTML和内容来更进一步。