2010-05-25 5 views
3

Я думаю, имеет ли смысл, чтобы увеличить скорость веб-сайта, чтобы сделать некоторую стратегию кэширования 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"); 
+0

Любая причина jQuery - это не только статический файл? – balpha

+0

@balpha no reason, я просто хотел использовать атрибут OutputCache для кэширования его коннекта, не знаю, имеет ли смысл – Omu

ответ

7

, что не нужно. Вы можете указать стратегию кеша для JS (и любых статических файлов) в web.config и IIS.

Для jQuery, в частности, вы можете ссылаться на библиотеку из Google CDN.

http://code.google.com/apis/ajaxlibs/documentation/#jquery

+0

Не только это не нужно, это вредно, потому что это приведет к тому, что javascript будет встроен в каждую HTML-страницу что делает загрузку каждой страницы HTML более крупной. –

+0

@ Claudio Redi вы могли бы показать мне, как это сделать в web.config? – Omu

+0

@Omu: какая версия IIS? –

3

Клиента браузер уже кэша включены JavaScript файлов. Для стандартных библиотек, таких как jQuery, вы можете использовать CDN, поскольку, скорее всего, он уже кэшируется в клиентском браузере.

1

Я не думаю, что вам нужно использовать OutputCache для кэширования файлов содержимого. Вы можете использовать конфигурационный файл: веб-сервер

<system.webServer> 
    <staticContent> 
    <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="10.00:00:00" /> 
    </staticContent> 
</system.webServer> 

Этот способ покажет браузер для кэширования статического контента (JS, CSS и изображения), а не для проверки нового контента в течение 10 дней.

Также по умолчанию любой браузер должен кэшировать статический контент. Вы можете просмотреть весь контент, который кэшируется в Chrome, набрав адресную строку chrome://cache

Смежные вопросы