ASP.NET MVC 2 - Избегать многократных запросов к базе данных для статических данных? - PullRequest
1 голос
/ 25 августа 2010

Что я могу сделать, чтобы избежать повторной загрузки статических данных при каждой загрузке страницы в ASP.NET MVC2?Это довольно расточительно, и я бы хотел это исправить.

Моя главная страница имеет типичное имя пользователя + название компании в правом верхнем углу.Но из-за MVC, не имеющей состояния, эти данные нужно искать каждый раз при загрузке страницы, даже если она никогда не меняется.

В старые времена веб-форм я просто выбрасывал их в сессию, но в MVC это не приветствуется.Кроме того, веб-приложение работает на веб-ферме, поэтому я действительно не хочу использовать сессию.

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

Ответы [ 2 ]

3 голосов
/ 25 августа 2010

Я всегда использую для этого встроенный кеш ASP.NET, правильно устанавливаю срок действия, и все готово.

public void Blah()
{
    var company = HttpRuntime.Cache.Get("Company") as string;
    if (company == null)
    {
        company = FetchCompanyFromDb();
        HttpRuntime.Cache["Company"] = company;
    }

    return this.View(company);
}

Также смотрите этот предыдущий вопрос:

Кэширование в asp.net-mvc

0 голосов
/ 25 августа 2010

Не могли бы вы, возможно, инкапсулировать вашу пользовательскую валюту / имя пользователя / налог и т. Д. В пользовательский элемент управления, а затем использовать для этого кэширование вывода?

...