MAIN MENU
เขียนโปรแกรมบน iPhone ด้วย MonoTouch News Php Tips Ubuntu Spring+Strut+Hibernate Android Programming Design Pattern By PHP C# Design Pattern Linux Quick Tips C# Tips & Technique C# using Linq น่าใช้จริงๆ Java & JavaScript Tips MAVEN Database & SQL ZengCode Framework Guide Mac OSx Zeng Code Code Programming IPhone (Tips and Trick)
Download เอกสารที่น่าสนใจ




|
พัฒนา ASP.NET Applications แบบ High-Performance กัน (2010-06-13)
พอดีไปเจอบทความดีๆ ที่น่าสนใจจึงนำมาฝากครับ
มาจาก : http://webcache.googleusercontent.com/search?q=cache:NNdK8DMpri8J:www.centinova.com/board/index.php%3Ftopic%3D27.0%3Btopicseen+asp.net+server.trasfer&cd=8&hl=th&ct=clnk&gl=th&lr=lang_th&client=firefox-a
ในการเขียน ASP.NET Application มีสิ่งสำคัญอย่างหนึ่งที่ต้องคำนึงถึงนั่นคือประสิทธิภาพการทำงานของระบบ ในบทความนี้ผมจะขอแนะนำเบื้องต้นเกี่ยวกับการพัฒนา ASP.NET Application แบบ High-Performance กัน
โดยแบ่งออกเป็น 5 เรื่องหลักๆ
- Page and Server Control Processing
- State management
- Data access
- Web applications
- Coding practices
สำหรับวันนี้ขอแนะนำในเรื่อง Page and Server Control Processing ก่อนนะครับ
- Avoid unnecessary round trips to the server
เรา ต้องพยายามหลีกเลี่ยงที่จะเขียนโปรแกรมให้มัน postback กลับมาที่ server บ่อยๆ เพราะนี่เป็นเหตุผลที่ทำให้ประสิทธิภาพตกต่ำเป็นอันดับต้นๆเลยนะครับ ซึ่งเราควรจะหลีกเลี่ยงเหตุการณ์ที่จะทำใหมัน postback เช่น การใช้ javascript ในการ validate ค่าที่ผู้ใช้ป้อนเข้ามา หรือใช้ validating control ของ asp.net ก็ได้ หรือในกรณีที่ต้องส่งค่า
กลับ มาตรวจสอบที่ server จริงๆ ก็ลองหันไปใช้ Client Callback Method หรือ AJAX ซึ่งจะช่วยลดปริมาณข้อมูลในการส่งไปและรับกลับมาได้มากทีเดียว วิธีนี้นอกจากจะช่วยให้โปรแกรมทำงานเร็วขึ้นแล้วยังทำให้ web ที่พัฒนามีการแสดงผลที่ดีต่อผู้ใช้ด้วย
- Use the Page object's IsPostBack property to avoid performing unnecessary processing on a round trip
ใน กรณีที่เราต้องการให้ code บางส่วนทำงานแค่ครั้งแรกที่โหลดเพจขึ้นมา ไม่ใช่ทำงานทุกครั้งที่มีการ postback เราควรจะใช้ property ชื่อ IsPostBack ซึ่งให้ค่าเป็น boolean ทำการตรวจสอบ condition และจัดการกับ code เหล่านั้น
- Save server control view state only when necessary
ก่อนอื่นเลยต้องแนะนำว่า ViewState คืออะไร ?
ViewState คือค่าของ control ต่างๆ ที่ถูกเข้ารหัสและส่งไปพร้อมกับเพจ เช่น เวลาผู้ใช้กรอกข้อมูลลงในฟอร์มแล้วส่งค่ากลับมาที่ server เราสามารถจะดึงค่าเหล่านั้นออกมาตรวจสอบได้ รวมถึงกำหนดค่าให้กับ control ด้วย ซึ่ง ViewState ช่วยให้การเขียนโปรแกรมตรงนี้ง่ายขึ้นมาก หากเทียบกับ Framework อื่นๆ ที่จะต้องรับค่า parameter จาก HttpRequest เท่านั้น
โดย ปกติ viewstate จะถูกตั้งค่าให้เป็น true อยู่แล้ว จึงทำให้ control ทุกตัวจะถูกนำค่าต่างๆไปเข้ารหัสเสมอ ซึ่งนั่นมาพร้อมกับ overhead ที่สูงขึ้นทั้งเวลาในการ process และขนาดของ html ที่ใหญ่ขึ้น ดังนั้นทางที่ดีเราควรจะตั้งค่า ViewState เป็น false สำหรับ control ใดๆ ที่คิดว่าจะไม่ได้อ่านค่าเมื่อรับกลับมา เช่น Label เป็นต้น
- Leave buffering on unless you have a specific reason to turn it off
โดยปกติ ASP.NET จะมีการใช้ Buffer อยู่แล้ว ซึ่งเราก็สามารถจะปิดการใช้งานนี้ได้ แต่ต้องคำนึงถึงความจำเป็นให้ดี เพราะ Buffer ช่วยให้ performance ดีขึ้นมากเมื่อเทียบกับการไม่มี
- Use the Transfer method of the Server object or cross-page posting to redirect between ASP.NET pages in the same application
หลายๆ ท่านอาจใช้ Response.Redirect เวลาที่ต้องการให้โปรแกรมเปลี่ยนไปรันที่หน้าอื่นซึ่งอยู่ภายใน Application เดียวกัน แต่การใช้ Redirect จะเป็นการส่งค่ากลับไปที่ browser เพื่อให้ browser เรียกหน้าที่ต้องการอีกที ซึ่งจะทำให้ต้องเกิด round trips โดยไม่จำเป็น ทางที่ดีควรใช้ Server.Transfer แทนซึ่งจะทำการรันโปรแกรมในหน้าใหม่ทันทีไม่มีการเกิด round trips แบบที่ Response.Redirect ทำ แต่หากต้องการเรียกหน้าอื่นที่เป็นคนละ Application กัน ก็คงต้องพึ่งบริการของ Response.Redirect นะครับ |
|
Comment
|
|