Большинство программистов на C++ знакомо с тернарным оператором:
x = (y < 0) ? 10 : 20;
Однако они не понимают, что это может использоваться в качестве lvalue:
(a == 0 ? a : b) = 1;
, который является стенографией для
if (a == 0)
a = 1;
else
b = 1;
Использование с осторожностью:-)
Donut caching is where you cache every thing on a page except a few dynamic regions. So you cache the doughnut but not the hole.
You should use it when most of you page is static other than 1 changable section.
You should read this on implementation advice.
and all this with one google search
I'm not sure that you're going to get better results by using stackoverflow as a human powered search engine. Honestly, anything that anyone here will post will be sourced from a search engine query such as this one:
Я не уверен, что смогу назвать его хорошим учебником, но если вы посмотрите это видео , там есть короткая демонстрация о том, как написать кэширование пончиков примерно через 36 минут.
Как это сделать, сводится к:
Добавьте на свои страницы кэширование вывода .
Решите, какие элементы необходимо добавить в ваши кэшированные страницы, прежде чем они будут возвращены клиенту.
Для каждого элемента создайте метод static
( Shared
в VB), который возвращает элемент, например
Public Shared Function LoginName(ByVal context As HttpContext) As String
Return "Welcome, " & context.User.Identity.Name
End Function
Добавьте элемент управления Substition
на свою страницу в соответствующем месте. для каждого элемента, который вызывает только что созданный метод.
<asp:Substitution runat="server" ID="LoginNameSubstitution" MethodName="LoginName" />
Готово!