ASP.NET 客戶端

2022-06-27 15:40 更新

客戶端

ASP.NET 的客戶端編碼有兩方面:

  • 客戶端腳本:它在瀏覽器中運行并且依次加速頁面的執(zhí)行。例如,客戶端數(shù)據(jù)有效性能夠捕捉無效數(shù)據(jù)并相應(yīng)地提醒用戶而不經(jīng)過在服務(wù)器中回發(fā)。
  • 客戶端源代碼:ASP.NET 網(wǎng)頁形成了該客戶端源代碼。例如,ASP.NET 網(wǎng)頁的 HTML 源代碼包含了若干隱藏區(qū)域并能自動注入 Java 描述語言代碼,從而保留了信息像視圖狀態(tài)一樣,或者進行其他工作保證網(wǎng)頁正常運作。

客戶端腳本

所有 ASP.NET 服務(wù)器控件都允許響應(yīng)通過 Java 語言或者 VBS 語言繪制的編碼。有些 ASP.NET 服務(wù)器控件端使用客戶端腳本進行對用戶需求的反應(yīng),而并沒有回發(fā)到服務(wù)器。例如,數(shù)據(jù)有效性控件。

除了這些腳本,按鈕控件具有恰當(dāng)?shù)?OnClientClick 方法,能夠在按鈕單擊時執(zhí)行客戶端腳本。

傳統(tǒng)服務(wù)器 HTML 控件有以下幾個事件能夠在腳本發(fā)起時執(zhí)行腳本:

事件屬性
onblur當(dāng)控件失去焦點時觸發(fā)
onfocus當(dāng)控件獲得焦點觸發(fā)
onclick當(dāng)控件被單擊時觸發(fā)
onchange當(dāng)控件值發(fā)生改變時觸發(fā)
onkeydown當(dāng)用戶按下鍵盤按鈕時觸發(fā)
onkeypress當(dāng)用戶按下字母數(shù)字的按鍵時
onkeyup當(dāng)用戶釋放按鍵時觸發(fā)
onmouseover當(dāng)用戶移動鼠標(biāo)指針在控件界面時觸發(fā)
onserverclick當(dāng)控件界面被單擊時,啟動 ServerClick 事件控件

客戶端源代碼

我們已經(jīng)在以上內(nèi)容中討論過了客戶端源代碼。ASP.NET 網(wǎng)頁通常被編寫在兩種文件中:

  • 內(nèi)容文件或者審定文件(.aspx)
  • 代碼后置的文件

內(nèi)容文件包含 HTML 或者 ASP.NET 控件標(biāo)簽和文字來形成頁面結(jié)構(gòu)。代碼后置的文件包含了分類定義。在運行時間,內(nèi)容文件被解析并被傳送到一個頁面類。

這個頁面類以及在編碼文件中的類的定義和系統(tǒng)生成的編碼共同組成執(zhí)行編碼(集成),這些集成編碼加工所有的回發(fā)數(shù)據(jù),產(chǎn)生響應(yīng)和發(fā)回客戶動作。

思考一下這個簡單頁面:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" 
   Inherits="clientside._Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >

   <head runat="server">
      <title>
         Untitled Page
      </title>
   </head>

   <body>
      <form id="form1" runat="server">

         <div>
            <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>  
            <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Click" />
         </div>

         <hr />

         <h3> <asp:Label ID="Msg" runat="server" Text=""> </asp:Label> </h3>
      </form>
   </body>

</html>

當(dāng)這個頁面在瀏覽器中運行時,View Source 選項顯示了 HTML 網(wǎng)頁并通過 ASP.Net 運行時間發(fā)送到瀏覽器:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >

   <head>
      <title>
         Untitled Page
      </title>
   </head>

   <body>
      <form name="form1" method="post" action="Default.aspx" id="form1">

         <div>
            <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" 
               value="/wEPDwUKMTU5MTA2ODYwOWRk31NudGDgvhhA7joJum9Qn5RxU2M=" />
         </div>

         <div>
            <input type="hidden" name="__EVENTVALIDATION"  id="__EVENTVALIDATION" 
               value="/wEWAwKpjZj0DALs0bLrBgKM54rGBhHsyM61rraxE+KnBTCS8cd1QDJ/"/>
         </div>

         <div>
            <input name="TextBox1" type="text" id="TextBox1" />  
            <input type="submit" name="Button1" value="Click" id="Button1" />
         </div>

         <hr />
         <h3><span id="Msg"></span></h3>

      </form>
   </body>
</html>

如果恰當(dāng)?shù)貫g覽編碼,您就會發(fā)現(xiàn)前兩個 \<div> 標(biāo)簽包含了存儲的視圖狀態(tài)和有效數(shù)據(jù)的隱藏域。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號