2012-02-15 5 views
0

У меня есть один вопрос, чтобы узнать о главной странице Asp.Net. В мастер-страницы и загрузки страницы события у меня есть код, какAsp.Net - Главная страница - Как избежать ненужных звонков

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostBack) 
    { 
    if (Session["UserName"] != null && Session["UserLastName"] != null) 
    { 
     lblDisplayName.Text = Session["UserName"].ToString() + " " + Session["UserLastName"].ToString() ; 
    } 
    } 
} 

Мастер страницы применяется для Page 1 и Page 2 Всякий раз, когда я переадресовать от страницы 1 к странице 2 или Page 2 к странице 1. Он выполняет загрузка страницы главной страницы. И выше код выполняется каждый раз. Невозможно ли установить имя пользователя только один раз.

Есть ли что-нибудь, чтобы этого избежать?

Thanks, Mahesh.

+1

Я думаю, что вы переоцениваете объем нагрузки, которую эти 3 строки кода размещают на сервере ... –

+0

Интересно, знает ли OP, сколько кода выполняется до тех пор, пока Page_Load и как еще один большой «много» после , –

ответ

0

ASP.NET не имеет гражданства, поскольку протокол HTTP является апатридом; поэтому экземпляр главной страницы на стр. 1 ничего не знает о запросе, сделанном для страницы 2. Таким образом, вы должны повторно устанавливать метку каждый раз при загрузке страницы.

Если вы спрашиваете об этом в отношении производительности, я бы не стал беспокоиться о настройке ярлыка каждый раз. Самая большая проблема с производительностью имеет тенденцию быть:

  1. Большие размеры страниц, которые требуют длительного времени для скачивания на клиенте.
  2. Неэффективные запросы к базе данных.
  3. Есть и другие, но это тема другой дискуссии.
+3

http protocol is stateless –

+0

Получил это Thanks Brian Mains –

0

HTTP - протокол без учета состояния.

При переходе с одной страницы на другую вы теряете всю информацию о состоянии. Действительно, большая часть веб-центров развития обеспечивает предоставление некоторого подобия состояния в протоколе без гражданства.

Мы достигаем этого, вытаскивая значения где-то - файлы cookie или, как в вашем случае, сеанс.

Короче говоря, когда ваша страница загружается, она ничего не знает о странице, которая раньше была. Соответственно, вам нужно будет каждый раз проверять и устанавливать пользователя.

Смежные вопросы