Кэширование Уровня Страницы ASP.NET (с аутентифицируемыми сайтами)

Есть две проблемы:

  1. Вы сделали опечатку, повторив поиск word1 в word_to_id.
  2. При создании словаря word_to_id необходимо учитывать только уникальные значения.

Например, в Python 3.7+ вы можете использовать словари с упорядочением вставки:

for i, word in enumerate(dict.fromkeys(vocabulary)):
    word_to_id[word] = i

for word1, word2 in labels:
    ids.append([word_to_id[word1], word_to_id[word2]])

Альтернативой для версий до 3.7 является использование collections.OrderedDict [118 ] или itertools unique_everseen рецепт .

Если нет требования к упорядочению, вы можете просто использовать set(vocabulary).

5
задан Captain Sensible 19 January 2009 в 16:01
поделиться

4 ответа

Да, Вы на 100% корректны на этом.

Обычно я перемещусь в пользовательские элементы управления, чтобы смочь кэшировать пользовательские элементы управления объектов, которые не изменяются от пользователя на пользователя.

Можно затем использовать Сессию или другое хранилище кэша, если необходимо кэшировать пользователя определенные данные.

4
ответ дан 13 December 2019 в 22:18
поделиться

Другая опция является "Пончиком, Кэширующимся", как Scott Guthrie называет его:

Реализация "пончик, кэширующийся" с ASP.NET 2.0 функции замены выходного кэша

Это позволяет Вам иметь кэширование уровня страницы при реализации определенных элементов в некэшируемых "дырах".

3
ответ дан 13 December 2019 в 22:18
поделиться

Да Вы корректны, и управление Заменой, отмеченное Andy (и Zhaph), является Вашим лучшим ответом при использовании ASP.NET 2.0 или выше. Создание средств управления отдельного пользователя для non-user-specific содержания является менее идеальным подходом, который должен только использоваться, если Вы застреваете, работая с ASP.NET v1.x (таким образом, необходимо отметить Andy как ответ, я думал бы).

0
ответ дан 13 December 2019 в 22:18
поделиться

В зависимости от того, сколько динамического contnent Вы имеете на странице, Вы могли использовать управление Заменой для рендеринга динамического контента на кэшируемой странице.

Это управление связывается со статическим методом (помните, что жизненный цикл страницы не работал, поскольку это - кэшированная версия страницы и ни один из объектов, созданных в Page_Load и т.д. wiil быть доступным), который возвращает динамический контент и может быть расположен везде, где Вы хотите на странице.

<asp:Substitution ID="mySubstitution" runat="server" MethodName="GetLoggeninUserName" />
3
ответ дан 13 December 2019 в 22:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: