Мы пишем портал и, как и любой другой портал, храним HTML-данные в Db для модулей.
Поэтому я подумал, что могу кешировать каждый модуль в файлах. Я использую событие OnLoad, чтобы проверить, существует ли файл кэша для этого модуля, использую его, а затем создаю файл кэша:
if (!IsPostBack)
{
string Path = AppDomain.CurrentDomain.BaseDirectory + "\\Cache\\Modules\\" + ModuleId + ".dat";
if (File.Exists(Path))
{
Controls.Clear();
Literal ltCache = new Literal();
ltCache.Text = File.ReadAllText(Path);
Controls.Add(ltCache);
}
else
{
base.OnLoad(e);
StringBuilder SB = new StringBuilder();
StringWriter SW = new StringWriter(SB);
HtmlTextWriter htmlTW = new HtmlTextWriter(SW);
//this.Visible = true;
this.RenderControl(htmlTW);
File.WriteAllText(Path, SB.ToString());
//this.Visible = false;
}
}
но знаю, я сомневаюсь, что это хорошая идея.
что ты думаешь? получение данных из файла может замедлить работу сервера больше, чем получение данных из БД?