【JavaScript】page_load 与ispostback

public partial class _Default : System.Web.UI.Page

{

    protected void Page_Load(object sender, EventArgs e)

    {

        if (!Page.IsPostBack)
        {
            //第一次进入该页面

            NewsManager nm=new NewsManager();
            //绑定最新新闻
            gvNewNews.DataSource = nm.SelectNewNews();
            gvNewNews.DataBind();
    
            //绑定热点新闻
            gvHotNews.DataSource = nm.SelectHotNews();
            gvHotNews.DataBind();
        }

    }

}



  以上内容是新闻发布系统中的一小节代码,里面有两个本博客要讲的内容:Page_Load和Page.IsPostBack

Page_Load函数:

  即页面载入要执行的事件; Page_Load的执行分为两种情况;
  1.Page_Load事件的执行是在第一次加载页面时发生(即为了响应客户的请求);
  2.Page_Load事件的执行是在把该页面回发到服务器时发生;
  ASP.NET处理重新页面的时候都要重新执行Page_Load; 即重建Page类,而Page_Load是重建页面第一个要执行的事件; 所以无论何种情况都会执行Page_Load,这时就有必要判断一下服务器处理Page_Load事件时是在何种情况发生; 而Page.IsPostBack正好解决了这个问题;
  当是第一种情况的时候(为了响应客户的请求)Page.IsPostBack返回false;
  当是第二种情况的时候(把该页面回发到服务器给服务器处理时)Page.IsPostBack返回True; 所以正确应用好Page.IsPostBack能大大的提高应用程序的性能;
  Page_Load事件是ASP .NET识别的许多事件中的一个。Page_Load事件在一个页面加载时被触发,而且ASP .NET将自动调用Page_Load子程序,并在内部运行这段代码:

<scriptrunat="server">

 Sub Page_Load

 lbl1.Text="The date and time is " & now()

 End Sub

 </script>

 <html>

 <body>

 <form runat="server">

 <h3><asp:label id="lbl1" runat="server"/></h3>

 </form>

 </body>

 </html>

  注意:Page_Load事件不包含对象引用或是事件参数!

Page.IsPostBack属性:

  Page_Load子程序在每次页面加载的时候都会运行。如果你只想在第一次加载此页面的时候执行Page_Load中的代码,你可以使用Page.IsPostBack属性。如果Page.IsPostBack属性为false,页面是第一次被加载,如果为true,则页面是被“投递”(post)回服务器的
  每当点击ASP.NET的Web网页上的Button、LinkButton或ImageButton等控件时,表单就会被发送到服务器上。如果某些控件的AutoPostBack属性被设置为true,那么当该控件的状态被改变后,也会使表单会发送回服务器。
  在ASP.NET应用程序中,如果需要在页面第一次显示时执行一些初始化操作,必须判断IsPostBack属性!
  在ASP.NET使用Page.IsPostback,那么就可以避免往返行程上的额外工作:如果处理服务器控件回发,通常需要在第一次请求页时执行代码,该代码不同于激发事件时用于往返行程的代码。如果检查Page.IsPostBack属性,则代码可按条件执行,具体取决于是否有对页的初始请求或对服务器控件事件的响应。这样做似乎很明显,但实际上可以忽略此项检查而不更改页的行为。该属性用的好坏,直接关系到你程序运行是否按照你最初的意愿,也关系到整个页面的效率。因为,如果每次都会给控件绑定数据,不管你是第一次访问,还是提交了数据以后,那么这个页面程序的效率可想而知。

参考博客:

https://blog.csdn.net/fjclc2008/article/details/6998046?utm_source=copy
https://cnbin.github.io/blog/2015/08/10/page-load-yong-fa/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值