我在应用程序中有太多页面,基本上加载了同一组xml和js文件,用于客户端交互和验证。所以,我有大约十几行,例如<script type="text/javascript" src="JS/CreateMR.js"></script>
或类似<xml id="DefaultDataIslands" src="../XMLData/DataIslands.xml">
。
这些相同的文件包含在每个页面中,因此浏览器每次都会发送读取请求。加载这些文件大约需要900毫秒。
我试图找到一种方法在登录页面上加载它们,然后使用该临时文件作为源。有可能这样做吗?如果是,我应该如何以及在哪里开始?
P.S。指向教程的链接也会起作用,因为我目前还不知道。
编辑:
我无法缓存整个页面,因为页面是在运行时根据不同的可能视图模式生成的。我只能缓存js和xml文件。缓存一切可能是个问题。
无论如何,我正在阅读建议的文章,以弄清楚如何做到这一点。所以,当我读完并尝试在一个页面中实现它时,我可能无法立即接受任何答案。
编辑: 原来缓存已经启用,只是我的服务器表现得很疯狂。查看下面的截图。
如您所见,使用缓存,实际上需要更多时间来处理某些请求。我不知道那个问题是什么,但我想我应该去服务器堆栈交换来解决这个问题。
至于实际问题,事实证明我不必做任何事情来启用xml和js文件的缓存。不知道浏览器在没有使用特定标签的情况下自动缓存js文件。
答案 0 :(得分:2)
完全可能并且事实上建议。
浏览器缓存已使用适当的HTTP缓存标头发送的内容,并且在缓存过期之前不会再次请求它。这将使您的网页更快,响应更快,并且您的服务器负载更轻。
Here is a good read让你开始。
Here is ASP.NET MVC caching guide。它侧重于缓存从控制器返回的内容。
IIS上使用ASP.NET MVC的答案 1 :(得分:2)
基本上,您希望在第一次请求后使用浏览器缓存机制来缓存src文件。
disable cache
选项。否则,它会强制浏览器忽略缓存的文件。304 Unmodified
。答案 2 :(得分:0)
<clientCache>
文件中添加web.config
元素来缓存静态文件。 <clientCache>
元素的<staticContent>
元素指定IIS及以后发送到Web客户端的与缓存相关的HTTP标头,这些标头控制Web客户端和代理服务器如何缓存IIS及以后返回的内容。How to configure static content cache per folder and extension in IIS7?
有关客户端缓存的更多信息,请阅读Ultra-Fast ASP.NET 4.5
本书的这一部分:
Browser Cache and Caching Static Content
Caching Portions of an ASP.NET Page
如果您使用的是MVC,请使用Donut Hole Caching
答案 3 :(得分:0)
浏览器必须询问服务器文件是否已被修改,因为它将文件放入缓存,因此http状态代码为304.从https://httpstatuses.com/304了解更多信息。
由于这是asp.net,请确保您首先使用
运行它<compilation debug="false"/>
因为启用调试会产生一些副作用,包括。
"All client-javascript libraries and static images that are deployed via
WebResources.axd will be continually downloaded by clients on each page
view request and not cached locally within the browser."