本篇內(nèi)容主要講解“IsPostBack的原理是什么”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“IsPostBack的原理是什么”吧!
成都創(chuàng)新互聯(lián)公司是一家專業(yè)提供郊區(qū)企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站建設(shè)、成都網(wǎng)站制作、成都h5網(wǎng)站建設(shè)、小程序制作等業(yè)務(wù)。10年已為郊區(qū)眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)絡(luò)公司優(yōu)惠進(jìn)行中。IsPostback的原理
--------------------------------------------------------------------------------
一步一步讓你看明白。。
先說(shuō)說(shuō)吧,然后在上代碼。ispostback:就是判斷頁(yè)面是首次加載的,還是數(shù)據(jù)回發(fā)(有g(shù)et或者post請(qǐng)求過(guò)的)后的頁(yè)面。上代碼吧,直觀點(diǎn)。
--------------------------------------------------------------------------------
1.asp.net頁(yè)面
--------------------------------------------------------------------------------
復(fù)制代碼 代碼如下:
復(fù)制代碼 代碼如下:
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
Response.Write("這是回發(fā)后的頁(yè)面!"); //點(diǎn)擊button1控件后出現(xiàn)這個(gè)
}
else
{
Response.Write("這是首次加載的頁(yè)面!"); //第一次預(yù)覽出現(xiàn)這個(gè)
}
}
2.html頁(yè)面
--------------------------------------------------------------------------------
(1)由于是純粹的html頁(yè)面,即便點(diǎn)擊提交也無(wú)法,回發(fā)數(shù)據(jù),也就是html頁(yè)面無(wú)法獲取回發(fā)過(guò)來(lái)的值。所以ispostback為false。
--------------------------------------------------------------------------------
復(fù)制代碼 代碼如下:
復(fù)制代碼 代碼如下:
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
Response.Write("這是回發(fā)后的頁(yè)面!");
}
else
{
Response.Write("這是首次加載的頁(yè)面!"); //第一次預(yù)覽出現(xiàn)這個(gè),點(diǎn)擊submit控件后還出現(xiàn)這個(gè)
}
}
(2)這里加了一個(gè)隱藏的viewstate,回發(fā)過(guò)來(lái)的數(shù)據(jù)存放在viewstate,完成了數(shù)據(jù)回發(fā),ispostback的值也就為true。如果你疑惑如果下次還想要首次加載的數(shù)據(jù)怎么辦,我告訴你,下次讀取數(shù)據(jù)直接從viewstate中讀取,不用再次發(fā)出請(qǐng)求。
--------------------------------------------------------------------------------
復(fù)制代碼 代碼如下:
復(fù)制代碼 代碼如下:
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
Response.Write("這是回發(fā)后的頁(yè)面!"); //點(diǎn)擊submit控件后又出現(xiàn)這個(gè)。
}
else
{
Response.Write("這是首次加載的頁(yè)面!"); //第一次預(yù)覽出現(xiàn)這個(gè)。
}
}
小結(jié):其是asp.net頁(yè)面中也有一個(gè)隱藏的viewstate字段,通過(guò)在頁(yè)面上查看源代碼就能看出來(lái),一般為了減少服務(wù)器的壓力,我們通常會(huì)把viewstate禁用掉,那么將不會(huì)用到ispostback判斷是否是數(shù)據(jù)回發(fā)過(guò)的頁(yè)面,那將每次執(zhí)行以下后臺(tái)代碼,如果是讀取數(shù)據(jù)庫(kù)中的數(shù)據(jù),那么也將每次都要讀取一下,這里你可能會(huì)擔(dān)心數(shù)據(jù)庫(kù)的壓力過(guò)大,這里我們還有另外的解決辦法,而并非使用viewstate,那就是使用緩存技術(shù)解決這里的問(wèn)題。
到此,相信大家對(duì)“IsPostBack的原理是什么”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)建站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!