asp.net,聊天室为什么需要手动刷新一下聊天室数据才更新,但在发送按钮事件内结束时加刷新后之前的聊天记录会消失?

protected void Page_Load(object sender, EventArgs e)
{
    int p_int_current = Convert.ToInt32(Application["current"]);
    Application.Lock();
    String p_str_chats = Application["chats"].ToString();
    String[] p_str_chat = p_str_chats.Split(',');
    for (int i = p_str_chat.Length - 1; i >= 0; i--)
    {
        if (p_int_current == 0)
        {
            TextArea1.Value = TextArea1.Value + "\n" + p_str_chat[i].ToString();

        }
    }
    Application.UnLock();
}


public MySqlConnection GetConnection()
{
    String mystr = ConfigurationManager.ConnectionStrings["MYSQLConnection"].ToString();
    MySqlConnection myconn = new MySqlConnection(mystr);
    return myconn;
}




protected void Button1_Click(object sender, EventArgs e)
{
    int p_int_current = Convert.ToInt32(Application["current"]);
    String username = Request.Params["Name"];
    Label1.Text = username;
    Application.Lock();
    if (p_int_current == 0 || p_int_current > 200)
    {
        p_int_current = 0;
        Application["chats"] = Label1.Text.ToString() + "说:" + TextBox2.Text.Trim() + "(" + DateTime.Now.ToString() + ")";

    }
    else
    {
        Application["chats"] = Application["chats"].ToString() + "," + Session["username"].ToString() + "说:" + TextBox2.Text.Trim() + "(" + DateTime.Now.ToString() + ")" + "</br>";
        p_int_current += 1;
        Application["current"] = p_int_current;
        Application.UnLock();
    }
    TextBox2.Text = "";
}


protected void Button2_Click(object sender, EventArgs e)
{
    Response.Write(@"<script>window.close();</script>");
}

烧书吧,使用的技术已经过时了
教程:SignalR 2 的实时聊天 | Microsoft Docs 本教程介绍如何使用 SignalR 创建实时聊天应用程序。 将 SignalR 添加到空的 ASP.NET web 应用程序。 https://docs.microsoft.com/zh-cn/aspnet/signalr/overview/getting-started/tutorial-getting-started-with-signalr