หลายๆ คนใช้ตัวแปร Session เพื่อพัฒนา ASP (Active Server Pages) ตัวแปรเหล่านี้มีความคล้ายคลึงกับตัวแปรเอนกประสงค์ในภาษาการเขียนโปรแกรมใดๆ มาก และมีข้อดีและข้อเสียเหมือนกับตัวแปรเอนกประสงค์ คำสั่งใดๆ ต้องใช้เวลาทำงานและพื้นที่เก็บข้อมูล (แม้แต่คำสั่งของ GOTO) และตัวแปรเซสชันยังต้องการเวลาทำงานและพื้นที่เก็บข้อมูลของตัวเองด้วย การใช้ตัวแปรเซสชันมากเกินไปจะทำให้เกิดความซ้ำซ้อนของโค้ดและเพิ่มต้นทุนการทำงานของเซิร์ฟเวอร์ ต่อไปนี้คือมุมมองและประสบการณ์หลักบางส่วนของฉันเกี่ยวกับการใช้ตัวแปรเซสชัน
ข้อได้เปรียบ
หากคุณต้องการส่งผ่านตัวแปรระหว่างเว็บเพจจำนวนมาก การใช้ตัวแปรเซสชันสามารถช่วยลดความซับซ้อนของปัญหา แทนที่จะส่งผ่านตัวแปรผ่าน QueryString
หากต้องการปรับแต่งเว็บไซต์ของคุณ ให้พิจารณาใช้ตัวแปรเซสชัน ผู้เยี่ยมชมไซต์ของคุณทุกคนจะได้รับประสบการณ์การปรับแต่งตามนี้ ด้วยการใช้ LDAP และเช่น MS Site Server จึงไม่จำเป็นต้องใส่กระบวนการปรับแต่งทั้งหมดลงในตัวแปรเซสชันอีกต่อไป และการปรับแต่งนี้ขึ้นอยู่กับการตั้งค่าของผู้ใช้ .
คุณสามารถใช้ตัวแปรเซสชันได้โดยตรงทุกครั้งที่คุณต้องการใช้โดยไม่ต้องประกาศล่วงหน้า วิธีนี้ใกล้เคียงกับการใช้ตัวแปรใน VB เมื่อใช้งานเสร็จแล้วก็ไม่ต้องคิดจะปล่อย เพราะจะถูกปล่อยโดยอัตโนมัติ
ข้อบกพร่อง
ตัวแปรเซสชันและคุกกี้เป็นประเภทเดียวกัน หากผู้ใช้ตั้งค่าเบราว์เซอร์ให้เข้ากันไม่ได้กับคุกกี้ใด ๆ ผู้ใช้จะไม่สามารถใช้ตัวแปรเซสชันนี้ได้!
เมื่อผู้ใช้เยี่ยมชมเพจ สภาพแวดล้อมการทำงานของตัวแปรเซสชันแต่ละตัวจะถูกสร้างขึ้นโดยอัตโนมัติ ตัวแปรเซสชันเหล่านี้สามารถคงอยู่เป็นเวลา 20 นาทีหลังจากที่ผู้ใช้ออกจากเพจ! (อันที่จริงแล้ว ตัวแปรเหล่านี้จะคงอยู่จนกว่าจะหมดเวลา ระยะเวลาของการหมดเวลาถูกกำหนดโดยผู้ดูแลระบบเซิร์ฟเวอร์เว็บ บางไซต์มีตัวแปรที่คงอยู่เพียง 3 นาที บางส่วนเป็นเวลา 10 นาที และยังมีตัวแปรอื่นๆ เป็นค่าเริ่มต้นที่ 20 นาที) ดังนั้น หากคุณวางวัตถุที่มีขนาดใหญ่กว่า (เช่น ชุดระเบียน ADO การเชื่อมต่อ ฯลฯ) ไว้ในเซสชัน คุณจะประสบปัญหา! เมื่อจำนวนการเข้าชมเว็บไซต์เพิ่มมากขึ้น เซิร์ฟเวอร์จะไม่สามารถทำงานได้อย่างถูกต้อง!
เนื่องจากการสร้างตัวแปรเซสชันนั้นเป็นไปตามอำเภอใจและสามารถเรียกได้ตลอดเวลาโดยไม่ต้องให้นักพัฒนาทำการประมวลผลที่แม่นยำ การใช้ตัวแปรเซสชันมากเกินไปจะนำไปสู่โค้ดที่อ่านไม่ได้และยากต่อการบำรุงรักษา
แม้ว่าคุณจะสามารถใช้ตัวแปรเซสชันได้โดยตรงเมื่อใดก็ตามที่คุณต้องการใช้โดยไม่ต้องประกาศล่วงหน้า แต่วิธีนี้ใกล้เคียงกับการใช้ตัวแปรใน VB เมื่อใช้งานเสร็จแล้วก็ไม่ต้องคิดจะปล่อย เพราะจะถูกปล่อยโดยอัตโนมัติ แต่ใครจะไปคิดล่ะนั่น? ตัวแปรต่างๆ หมายถึงอะไร? สิ่งนี้ไม่ชัดเจนนัก
สรุป
การใช้ตัวแปร Session มีทั้งข้อดีและข้อเสีย ในความเห็นส่วนตัวของฉัน วิธีที่ดีที่สุดคือใช้เท่าที่จำเป็น แต่การใช้ในบางที่สามารถทำให้การพัฒนาเว็บง่ายขึ้นได้จริงๆ การใช้ตัวแปร Session จะขึ้นอยู่กับความต้องการส่วนบุคคลหรือไม่ก็ตาม คุณต้องพิจารณาข้อดีและข้อเสียล่วงหน้า