powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Поможет ли кэширование
2 сообщений из 2, страница 1 из 1
Поможет ли кэширование
    #33884821
AlekseyB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.

Вопрос такой, у меня динамически строиться TreeView при этом данные получаю из базы примерно так:



 void TreeLoad()
    {
        GridView gv = new GridView();
        SqlDataSource1.Update();
        gv.DataSource = SqlDataSource1;
        gv.DataBind();

        int KolComplex = gv.Rows.Count;
        TreeNode[] Complexes = new TreeNode[KolComplex];
        TreeNode[] Mines = new TreeNode[1000];
        TreeNode[] Types = new TreeNode[1000];
        TreeNode[] Items = new TreeNode[10000];


        for (int i = 0; i <= KolComplex - 1; i++)
        {
            Complexes[i] = new TreeNode();

            Complexes[i].Text = gv.Rows[i].Cells[0].Text;
            Complexes[i].NavigateUrl = "ReportComplex.aspx?Comp=" + Complexes[i].Text + "&Year=" + Label1.Text;
            Complexes[i].Target = "Mine";
            
            TreeView1.Nodes.Add(Complexes[i]);
          ...
          ...
          ...  
          


и вот так четыре вложенных цикла, все работает но дерево строиться долго, так вот здесь собственно и вопрос, а если данные из SqlDataSource в кэш ложить, а затем из него уже дерево строить, будет оно быстрее строиться или нет?

И вот беда, я с кэшем никогда не работал, был бы вечно благодарен за маленький примерчик, как положить в него данные, а затем забратью
...
Рейтинг: 0 / 0
Поможет ли кэширование
    #33885687
Stray
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.

Вопрос такой, у меня динамически строиться TreeView при этом данные получаю из базы примерно так:



 void TreeLoad()
    {
        GridView gv = new GridView();
        SqlDataSource1.Update();
        gv.DataSource = SqlDataSource1;
        gv.DataBind();

        int KolComplex = gv.Rows.Count;
        TreeNode[] Complexes = new TreeNode[KolComplex];
        TreeNode[] Mines = new TreeNode[1000];
        TreeNode[] Types = new TreeNode[1000];
        TreeNode[] Items = new TreeNode[10000];


        for (int i = 0; i <= KolComplex - 1; i++)
        {
            Complexes[i] = new TreeNode();

            Complexes[i].Text = gv.Rows[i].Cells[0].Text;
            Complexes[i].NavigateUrl = "ReportComplex.aspx?Comp=" + Complexes[i].Text + "&Year=" + Label1.Text;
            Complexes[i].Target = "Mine";
            
            TreeView1.Nodes.Add(Complexes[i]);
          ...
          ...
          ...  
          


и вот так четыре вложенных цикла, все работает но дерево строиться долго, так вот здесь собственно и вопрос, а если данные из SqlDataSource в кэш ложить, а затем из него уже дерево строить, будет оно быстрее строиться или нет?

И вот беда, я с кэшем никогда не работал, был бы вечно благодарен за маленький примерчик, как положить в него данные, а затем забратью

Кэширование конечно поможет,
но прочитай вот эту статью!
Я реализовал подобным образом мне очень нравится как работает!

По поводу кэширования:
Нужно быть достаточно осторожным и быть уверенным, что данные не меняются, и всем клиентам необходимо одно и тоже.
пример:
кладем (например DataSet):

if (Cache("TreeTest")!=null)
{
DataSet ds = new DataSet();
...
//далее заполняем его из базы.

Cache.Insert("TreeTest",ds);
}

Берем соответсвенно:

DataSet ds = (DataSet)Cache["TreeTest"];

Где-то примерно так...
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Поможет ли кэширование
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]