小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

IsPostBack原理

 ThinkTank_引擎 2015-06-03

IsPostback的原理


 




一步一步讓你看明白。。


先說說吧,然后在上代碼。ispostback:就是判斷頁面是首次加載的,還是數(shù)據(jù)回發(fā)(有g(shù)et或者post請求過的)后的頁面。上代碼吧,直觀點(diǎn)。


 




1.asp.net頁面




復(fù)制代碼

<body>
    <form id="form1" runat="server">
    <div>
        <asp:Button ID="Button1" runat="server" Text="Button" />
    </div>
    </form>
</body>

復(fù)制代碼

 


復(fù)制代碼

 protected void Page_Load(object sender, EventArgs e)
        {
            if (IsPostBack)
            {
                Response.Write("這是回發(fā)后的頁面!"); //點(diǎn)擊button1控件后出現(xiàn)這個
            }
            else
            {
                Response.Write("這是首次加載的頁面!"); //第一次預(yù)覽出現(xiàn)這個
            }
        }

復(fù)制代碼



2.html頁面


 




 


(1)由于是純粹的html頁面,即便點(diǎn)擊提交也無法,回發(fā)數(shù)據(jù),也就是html頁面無法獲取回發(fā)過來的值。所以ispostback為false。





<form action="WebForm1.aspx" method="post">
<input id="Submit1" type="submit" value="submit" />
</form>


復(fù)制代碼

protected void Page_Load(object sender, EventArgs e)
        {
            if (IsPostBack)
            {
                Response.Write("這是回發(fā)后的頁面!"); 
            }
            else
            {
                Response.Write("這是首次加載的頁面!"); //第一次預(yù)覽出現(xiàn)這個,點(diǎn)擊submit控件后還出現(xiàn)這個
            }
        }

復(fù)制代碼



(2)這里加了一個隱藏的viewstate,回發(fā)過來的數(shù)據(jù)存放在viewstate,完成了數(shù)據(jù)回發(fā),ispostback的值也就為true。如果你疑惑如果下次還想要首次加載的數(shù)據(jù)怎么辦,我告訴你,下次讀取數(shù)據(jù)直接從viewstate中讀取,不用再次發(fā)出請求。





<form action="WebForm1.aspx" method="post">
<input type="hidden" name="__viewstate" />
<input id="Submit1" type="submit" value="submit" />
</form>


復(fù)制代碼

 protected void Page_Load(object sender, EventArgs e)
        {
            if (IsPostBack)
            {
                Response.Write("這是回發(fā)后的頁面!"); //點(diǎn)擊submit控件后又出現(xiàn)這個。
            }
            else
            {
                Response.Write("這是首次加載的頁面!"); //第一次預(yù)覽出現(xiàn)這個。
            }
        }

復(fù)制代碼



小結(jié):其是asp.net頁面中也有一個隱藏的viewstate字段,通過在頁面上查看源代碼就能看出來,一般為了減少服務(wù)器的壓力,我們通常會把viewstate禁用掉,那么將不會用到ispostback判斷是否是數(shù)據(jù)回發(fā)過的頁面,那將每次執(zhí)行以下后臺代碼,如果是讀取數(shù)據(jù)庫中的數(shù)據(jù),那么也將每次都要讀取一下,這里你可能會擔(dān)心數(shù)據(jù)庫的壓力過大,這里我們還有另外的解決辦法,而并非使用viewstate,那就是使用緩存技術(shù)解決這里的問題。


 

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多