Как отложить вызов функции После загрузки полной страницы на aspx с помощью c # - PullRequest
0 голосов
/ 05 ноября 2018

Ниже приведен мой простой исходный код, я просто пытаюсь вызвать эту функцию после загрузки страницы, но сейчас происходит следующее: она вызывает эту функцию до загрузки страницы. Страница загружается в течение 5 секунд, после чего отображается исполнение метки.

protected void Page_Load(object sender, EventArgs e)
{
   display();
}

void display()
{
    Thread.Sleep(5000);
    Label3.Text = "done";
}

Ответы [ 2 ]

0 голосов
/ 05 ноября 2018

Вы должны прочитать этот документ о жизненном цикле страницы ASP.NET. Это на самом деле говорит, что то, что вы пытаетесь сделать, невозможно.

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

Самый простой способ добиться этого - использовать Javascript и Ajax-вызов или Timer, который открывает новый поток, отличный от основного потока выполнения. Хотя я не рекомендую открывать новые потоки, потому что вы потеряете контроль над потоком выполнения, а на веб-странице вы можете лишиться сотен открытых потоков.

0 голосов
/ 05 ноября 2018

Ниже код работает

protected  void Page_Load(object sender, EventArgs e)
{
    Timer1.Interval = 2000;
    Timer1.Enabled = true;
}
protected void Timer1_Tick(object sender, EventArgs e)
{
        Label3.Text = "done";
}
...