asp.net-mvc:javascript缓存
我在想,为了增加网站的速度来做一些缓存正在被包含的js文件的策略是否有意义?asp.net-mvc:javascript缓存
一个想法,我是做这样的事情:
[OutputCache(Location = OutputCacheLocation.Any, Duration = 3600)]
public JsController : Controller
public ActionResult JQuery()
{
//I would have a ascx with the entire jquery script inside
return View();
}
,并在的Site.Master:
<%=Html.RenderAction("JQuery","JsController");
这是没有必要的。您可以在web.config和IIS上为JS(以及任何静态文件)指定缓存策略。
对于特别是jQuery,你可以引用谷歌CDN库。
不仅没有必要,它是有害的,因为它会导致JavaScript被嵌入到每个HTML页面中使每个HTML页面下载量更大。 – 2010-05-25 13:04:32
@Claudio Redi你能告诉我如何在web.config中做到这一点吗? – Omu 2010-05-25 13:24:12
@Omu:哪个IIS版本? – 2010-05-25 13:28:55
客户端浏览器缓存已经包含的JavaScript文件。对于jQuery等标准库,您可以使用CDN,因为它已被缓存在客户端浏览器中。
我不认为你必须使用OutputCache来缓存内容文件。您可以使用配置文件:
<system.webServer>
<staticContent>
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="10.00:00:00" />
</staticContent>
</system.webServer>
这样的Web服务器会告诉浏览器缓存静态内容(JS,CSS和图像),而不是检查新内容10天。
默认情况下,任何浏览器都应该缓存静态内容。您可以通过在地址栏中输入来查看Chrome中缓存的所有内容chrome://cache
任何原因jQuery不仅仅是一个静态文件? – balpha 2010-05-25 13:04:06
@balpha没有理由,我只是想使用OutputCache属性来缓存它的内容,不知道它是否有意义 – Omu 2010-05-25 13:16:15