Разходка
Актуализирано: ноември 2007 г
Производителността е критичен аспект на всяко уеб приложение. Повишената отзивчивост, способността на сървъра да обработва повече едновременни заявки и намаленото натоварване на междинните и задните системи за данни са резултат от намаляването на количеството изчисления, извършвани от сървъра при обработката на отделни заявки.
Един от начините за постигане на по-добра производителност в ASP.NET е използването на изходно кеширане, за да се намали натоварването на сървъра. Изходното кеширане е оптимизация, която намалява времето за реакция на уеб сървъра.
Обикновено, когато ASP.NET страница е поискана от браузър, ASP.NET инстанцира страницата, изпълнява произволен код на страницата, изпълнява заявки към база данни (ако има такива), динамично сглобява страницата и след това изпраща крайния изход към браузъра. Изходното кеширане позволява на ASP.NET да изпрати предварително изобразено копие на страницата, вместо да преминава през този процес при всяка заявка. Кеширането намалява количеството обработка, извършвана от уеб сървъра, което подобрява производителността и осигурява по-голяма мащабируемост.
Това ръководство обхваща конкретно следните задачи:
Кеширане на страница чрез използване на директивата за страница за кеширане на страницата и целия й изход, независимо от типа на браузъра, индивидуалните настройки или данните.
Използвайте кеш профили на ниво приложение, свойство, което ви позволява да дефинирате настройките за изходно кеширане за цялото приложение. Индивидуалните страници могат да бъдат съпоставени с профили, съдържащи се във файлаWeb.config. Това ще ви позволи да контролирате централно кеширането и да не редактирате всяка страница.
Кеширане въз основа на индивидуални параметри, изпратени със страницата.
Необходими компоненти
За да завършите тази стъпка, ще ви трябва:
Visual Web Developer (Visual Studio).
Microsoft .NET Framework версия 2.0.
Създаване на уеб сайт
Ако вече сте създали уеб сайт във Visual Web Developer (вижте Упътване: Създаване на основна уеб страница във Visual Web Developer), можете да използвате този уеб сайт и да продължите към следващия раздел на това ръководство. В противен случай създайте нов уебсайт и страница, като следвате тези стъпки.
Създаване на уеб сайт, базиран на файловата система
Отворете Visual Web Developer.
В менюто Файл изберете Нов уеб сайт. (В Visual Web Developer Express Edition в менюто File щракнете върху New, след това върху Web Site.)
Отваря се диалоговият прозорец Създаване на уеб сайт.
Под Инсталирани шаблони на Visual Studio изберете ASP.NET уеб сайт.
В полето Местоположение въведете името на папката, в която искате да съхранявате страниците на уеб сайта.
Например въведете името на папката C:\WebSites.
В списъка Език изберете езика за програмиране, с който предпочитате да работите.
Натиснете OK.
Visual Web Developer създава папка и нова страница с име Default.aspx.
Конфигуриране на кеширане на ниво страница
Тази процедура е въведение в кеширането на страници. В тази процедура добавяте контрола Label към страницата, която се показва, когато страницата е създадена, и настройвате кеширането на страницата. Като покажете времето за създаване на страницата, можете да видите товазаявката за страница е направена от кеша.
Конфигуриране на кеширане на ниво страница
Отворете или навигирайте до страницата Default.aspx (можете също да използвате всяка друга страница на уеб сайта).
Превключване към изглед на дизайн.
От групата Standard Toolbox плъзнете контрола Label върху страницата, оставяйки името по подразбиране (Label1).
Щракнете двукратно върху празна област на страницата.
Добавете следния маркиран код към метода.
Натиснете CTRL+F5, за да стартирате страницата.
Когато страницата се покаже в браузър, текущата дата и час ще бъдат видими. Щракнете върху бутона за опресняване на браузъра и забележете, че клеймото за време се променя при всяко опресняване на страницата.
Добавете следната директива @OutputCache в горната част на страницата:
Тази директива указва, че страницата трябва да бъде кеширана. Атрибутът Duration указва, че страницата ще бъде кеширана за 15 секунди.
Натиснете CTRL+F5, за да рестартирате страницата.
Обновете страницата няколко пъти.
Обърнете внимание, че времето за създаване се актуализира само на всеки 15 секунди, без значение колко пъти страницата е била опреснена в браузъра. Това е така, защото заявката извлича данни от кеша, докато изтече времето за изчакване, в който момент кодът на страницата се изпълнява отново.
Настройка на кеширане на ниво приложение
В предишната процедура една страница беше кеширана. В някои случаи може да искате да кеширате всички страници на уеб сайт. Може също да искате да дефинирате различни правила за кеширане (профили) и да приложите профили за кеширане към набори от отделни страници. Задаването на кеширане на ниво приложение ще ви позволи да промените поведението на кеширане отедин конфигурационен файл, вместо да редактирате директивата @OutputCache на отделни страници. В следващата процедура ще бъде създаден и използван прост профил на кеша за страницата, върху която току-що е работено.
Настройка на кеширане на ниво приложение
Ако файлът Web.config вече съществува, отидете на стъпка 4.
В Solution Explorer щракнете с десния бутон върху името на уеб сайта и изберете Добавяне на нов елемент.
В диалоговия прозорец Добавяне на елемент изберете Файл за уеб конфигурация и щракнете върху Добавяне.
Уверете се, че се използва името "Web.config".
Добавете следния XML елемент като дете на елемента system.web:
Запазете файла и го затворете.
Отворете уеб страницата, върху която сте работили, или отидете до нея и превключете към изглед на изходния код.
Променете директивата за четене @OutputCache, както следва.
Натиснете CTRL+F5, за да стартирате страницата.
Обновете страницата няколко пъти.
Този път датата ще остане същата за времето, посочено в профила на кеша, което е 60 секунди.
Кеширане с помощта на параметри
Директивата @OutputCache изисква да бъде зададен атрибутът VaryByParam, който досега имаше стойност „няма“. Атрибутът VaryByParam ви позволява да конфигурирате кеширането, така че ASP.NET да записва различни версии на страницата в зависимост от параметри като низове на заявки, стойности за подаване на формуляр, заглавки на заявки и т.н.
Например, можете да използвате опциите за кеширане на страница, която показва прогнозата за времето за избрани градове, където данните за времето се актуализират само на всеки три часа. При този сценарий трябва да кеширате отделна версия на страницата за всеки град. Направитова може да стане чрез задаване на параметъра на кеша на различни стойности с помощта на параметър на низ на заявка.
Следната процедура показва как да промените контрола Label, добавена към страница, за да показва часа на цветен фон. Можете да промените цвета, като използвате контролата TextBox, за да въведете името на цвета.
Когато страницата бъде изпратена, въведеният цвят ще бъде изпратен като изпратени данни и цветът зад контролата на етикета ще се промени. Когато бъде заявен нов цвят (ако страницата включва нови изпратени данни), страницата ще бъде създадена отново и клеймото за време ще бъде актуализирано. Въпреки това последващи заявки за същия цвят ще доведат до връщане на кеширана страница (докато интервалът от време не бъде надвишен).
Кеширане, базирано на параметри
Отворете страницата, върху която сте работили, или превключете към нея.
Превключване към изглед на дизайн.
Плъзнете контрола TextBox от групата Standard Toolbox върху страницата и задайте нейния ID на Цвят.
Плъзнете контрола Button върху страницата, оставяйки името по подразбиране (Button1).
Задайте свойството Text на контролата Button на Change Color.
Щракнете двукратно върху контролата Button, за да създадете манипулатор на събитие Click.
Добавете следния маркиран код към метода:
Задайте атрибута defaultbutton на елемента на формуляра на "Button1".
Това ще накара манипулатора на събитие Click на бутона да бъде извикан при натискане на клавиша ENTER.
Заменете директивата @OutputCache със следната версия:
Натиснете CTRL+F5, за да стартирате страницата.
Въведете име на цвят в текстовото поле, като например "червен" или "син", и щракнете върху бутона Промяна на цвета.
ASP.NET ще извърши кеширанетоверсия на страницата, която използва посочения цвят.
Обновете страницата няколко пъти.
Ако не бъде въведено ново име на цвят, тогава датата и часът няма да се променят поне една минута, както е посочено от атрибута Duration на директивата @OutputCache.
Въведете нов цвят като „зелен“ или „орхидея“ и изпратете страницата.
Този път времето ще се актуализира и ще се покаже новият цвят.