การเข้ารหัสฝั่งไคลเอ็นต์สำหรับ ASP.NET มีสองด้าน:
สคริปต์ฝั่งไคลเอ็นต์ : ทำงานในเบราว์เซอร์และเพิ่มความเร็วในการดำเนินการของเพจ ตัวอย่างเช่น การตรวจสอบข้อมูลฝั่งไคลเอ็นต์สามารถตรวจจับข้อมูลที่ไม่ถูกต้องและแจ้งเตือนผู้ใช้ตามนั้น โดยไม่ต้องผ่าน postback ในเซิร์ฟเวอร์
ซอร์สโค้ดไคลเอ็นต์ : เว็บเพจ ASP.NET สร้างซอร์สโค้ดไคลเอ็นต์นี้ ตัวอย่างเช่น ซอร์สโค้ด HTML ของหน้าเว็บ ASP.NET มีพื้นที่ที่ซ่อนอยู่หลายแห่ง และสามารถแทรกโค้ดภาษาคำอธิบาย Java โดยอัตโนมัติเพื่อรักษาข้อมูล เช่น สถานะการดู หรือทำงานอื่นๆ เพื่อให้แน่ใจว่าหน้าเว็บทำงานได้อย่างถูกต้อง
การควบคุมเซิร์ฟเวอร์ ASP.NET ทั้งหมดอนุญาตให้มีการเข้ารหัสแบบตอบสนองผ่านภาษา Java หรือการวาดภาษา VBS ตัวควบคุมเซิร์ฟเวอร์ ASP.NET บางตัวใช้สคริปต์ฝั่งไคลเอ็นต์เพื่อตอบสนองความต้องการของผู้ใช้โดยไม่ต้องโพสต์กลับไปยังเซิร์ฟเวอร์ ตัวอย่างเช่น การควบคุมการตรวจสอบความถูกต้องของข้อมูล
นอกเหนือจากสคริปต์เหล่านี้ ตัวควบคุมปุ่มมีวิธี OnClientClick ที่เหมาะสมที่ดำเนินการสคริปต์ไคลเอนต์เมื่อมีการคลิกปุ่ม
การควบคุม HTML ของเซิร์ฟเวอร์แบบดั้งเดิมมีเหตุการณ์ต่อไปนี้ในการรันสคริปต์เมื่อเริ่มต้น:
เหตุการณ์ | คุณสมบัติ |
---|---|
เปิดเบลอ | เริ่มทำงานเมื่อส่วนควบคุมสูญเสียโฟกัส |
ออนโฟกัส | เริ่มทำงานเมื่อส่วนควบคุมได้รับโฟกัส |
เมื่อคลิก | เริ่มทำงานเมื่อมีการคลิกตัวควบคุม |
เมื่อมีการเปลี่ยนแปลง | ทริกเกอร์เมื่อค่าควบคุมเปลี่ยนแปลง |
กดปุ่มลง | เริ่มทำงานเมื่อผู้ใช้กดปุ่มแป้นพิมพ์ |
onkeypress | เมื่อผู้ใช้กดปุ่มตัวอักษรและตัวเลข |
ออนคีย์อัพ | เริ่มทำงานเมื่อผู้ใช้ปล่อยคีย์ |
เมาส์โอเวอร์ | ทริกเกอร์เมื่อผู้ใช้เลื่อนตัวชี้เมาส์บนอินเทอร์เฟซการควบคุม |
เมื่อเซิร์ฟเวอร์คลิก | เมื่อคลิกอินเทอร์เฟซการควบคุม ให้เริ่มการควบคุมเหตุการณ์ ServerClick |
เราได้กล่าวถึงซอร์สโค้ดไคลเอนต์ข้างต้นแล้ว โดยปกติแล้วเว็บเพจ ASP.NET จะเขียนด้วยไฟล์สองประเภท:
ไฟล์เนื้อหาหรือไฟล์การอนุมัติ (.aspx)
ไฟล์ที่อยู่เบื้องหลังโค้ด
ไฟล์เนื้อหาประกอบด้วยแท็กควบคุม HTML หรือ ASP.NET และข้อความเพื่อสร้างโครงสร้างของเพจ ไฟล์โค้ดหลังประกอบด้วยข้อกำหนดการจำแนกประเภท ณ รันไทม์ ไฟล์เนื้อหาจะถูกแยกวิเคราะห์และส่งไปยังคลาสเพจ
คลาสเพจนี้ รวมถึงคำจำกัดความของคลาสในไฟล์การเข้ารหัสและการเข้ารหัสที่ระบบสร้างขึ้น รวมกันจะถือเป็นการเข้ารหัสการดำเนินการ (บูรณาการ) การเข้ารหัสแบบรวมเหล่านี้จะประมวลผลข้อมูล postback ทั้งหมด สร้างการตอบสนอง และส่งการดำเนินการกลับไปยังไคลเอนต์
พิจารณาหน้าง่ายๆ นี้:
<%@ 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>
เมื่อเพจนี้ทำงานในเบราว์เซอร์ ตัวเลือก View Source จะแสดงเพจ HTML และส่งไปยังเบราว์เซอร์ผ่านทางรันไทม์ ASP.Net:
<!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>
หากคุณดูการเขียนโค้ดอย่างถูกต้อง คุณจะเห็นว่าแท็ก <div> สองแท็กแรกมีช่องที่ซ่อนไว้สำหรับจัดเก็บสถานะมุมมองและข้อมูลที่ถูกต้อง