แนะนำ: วิธีการ ASP ป้องกันการส่งแบบฟอร์มซ้ำ ๆ ซ้ำ ๆ ผู้ใช้มักจะพบกับสถานการณ์ที่ไม่คาดคิดเมื่อส่งแบบฟอร์มเช่นการรีเฟรชหน้าหลายครั้งกดปุ่มย้อนกลับ ฯลฯ หากไม่มีมาตรการควบคุมมันจะทำให้เกิดปัญหาการส่งแบบฟอร์มซ้ำ ๆ วิธีการป้องกันที่แนะนำในบทความนี้ส่วนใหญ่ประกอบด้วยรูทีนย่อยสี่รูต ในแอปพลิเคชันที่ค่อนข้างง่ายคุณเพียงแค่วางรหัสเหล่านี้ไว้ในไฟล์ที่รวมอยู่และอ้างอิงโดยตรง สำหรับสิ่งเหล่านั้น
ทุกคนที่ใช้ ASP รู้ว่าวัตถุเซสชันจะเก็บข้อมูลที่จำเป็นสำหรับเซสชันผู้ใช้ที่เฉพาะเจาะจงและเมื่อผู้ใช้กระโดดระหว่างหน้าแอปพลิเคชันตัวแปรที่เก็บไว้ในวัตถุเซสชันจะไม่ถูกล้างและตัวแปรเหล่านี้จะปรากฏขึ้นเสมอเมื่อผู้ใช้เข้าถึงหน้าในแอปพลิเคชัน มันสามารถลดความซับซ้อนของโปรแกรมและปรับปรุงประสิทธิภาพการเขียนโปรแกรม แต่ก็มีข้อบกพร่องมากมายซึ่งอธิบายไว้ในบทความนี้
1. ข้อดี
หากคุณต้องการผ่านตัวแปรระหว่างหน้าเว็บหลายหน้าการใช้ตัวแปรเซสชันจะง่ายขึ้นโดยการส่งผ่านตัวแปรผ่านการสืบค้น
ในการทำให้เว็บไซต์ใช้งานง่ายให้พิจารณาใช้ตัวแปรเซสชัน ผู้เข้าชมทุกคนในเว็บไซต์ของคุณมีประสบการณ์ในการใช้งาน จากสิ่งนี้ด้วยการใช้ LDAP และ MSSiteserver ไม่จำเป็นต้องใส่กระบวนการใช้งานทั้งหมดลงในตัวแปรเซสชันอีกต่อไปและการใช้งานนี้ขึ้นอยู่กับการตั้งค่าของผู้ใช้
คุณสามารถใช้ตัวแปรเซสชันโดยตรงเมื่อใดก็ตามที่คุณต้องการใช้โดยไม่ต้องประกาศล่วงหน้าซึ่งใกล้เคียงกับการใช้ตัวแปรใน VB หลังการใช้งานคุณไม่จำเป็นต้องพิจารณาปล่อยเพราะมันจะถูกปล่อยออกมาโดยอัตโนมัติ
2. ข้อเสีย
ตัวแปรเซสชันและคุกกี้เป็นประเภทเดียวกัน หากผู้ใช้ตั้งค่าเบราว์เซอร์ของเขาให้เข้ากันไม่ได้กับคุกกี้ใด ๆ ผู้ใช้ไม่สามารถใช้ตัวแปรเซสชันนี้ได้!
เมื่อผู้ใช้เข้าชมหน้าสภาพแวดล้อมการทำงานของตัวแปรเซสชันแต่ละตัวจะถูกสร้างขึ้นโดยอัตโนมัติและตัวแปรเซสชันเหล่านี้สามารถเก็บรักษาไว้ได้เป็นเวลา 20 นาทีหลังจากผู้ใช้ออกจากหน้า! (อันที่จริงตัวแปรเหล่านี้สามารถเก็บไว้ในการหมดเวลาได้ตลอดเวลาความยาวของการหมดเวลาถูกตั้งค่าโดยผู้ดูแลระบบเว็บเซิร์ฟเวอร์บางไซต์จะใช้เวลาเพียง 3 นาทีเพียง 10 นาทีและบางครั้งเป็นเวลา 20 นาที) ดังนั้นหากคุณใส่วัตถุขนาดใหญ่ในเซสชัน (เช่น Adorecordsets การเชื่อมต่อ ฯลฯ ) เมื่อจำนวนการเข้าชมไซต์เพิ่มขึ้นเซิร์ฟเวอร์จะไม่สามารถทำงานได้ตามปกติ!
เนื่องจากการสร้างตัวแปรเซสชันนั้นเป็นไปตามอำเภอใจมากและสามารถเรียกได้ตลอดเวลาและไม่จำเป็นต้องมีการประมวลผลที่แม่นยำโดยนักพัฒนาซอฟต์แวร์การใช้ตัวแปรเซสชันที่มากเกินไปจะทำให้รหัสอ่านไม่ได้และยากที่จะรักษา
แม้ว่าคุณสามารถใช้ตัวแปรเซสชันโดยตรงเมื่อใดก็ตามที่คุณต้องการใช้โดยไม่ต้องประกาศล่วงหน้า แต่วิธีนี้ใกล้เคียงกับการใช้ตัวแปรใน VB หลังการใช้งานคุณไม่จำเป็นต้องพิจารณาปล่อยเพราะมันจะถูกปล่อยออกมาโดยอัตโนมัติ แต่ใครคิดว่ามันอยู่ที่นั่น? ตัวแปรหมายถึงอะไร? สิ่งเหล่านี้ไม่ชัดเจนมาก
สรุป
การใช้ตัวแปรเซสชันมีทั้งข้อดีและข้อเสีย เท่าที่บทความนี้เกี่ยวข้องควรใช้น้อยที่สุด แต่การใช้พวกเขาในบางสถานที่สามารถทำให้การพัฒนาเว็บง่ายขึ้นอย่างมากดังนั้นไม่ว่าจะใช้เซสชันขึ้นอยู่กับความต้องการของโครงการ แต่ไม่ว่าจะใช้หรือไม่ก็ตามข้อดีและข้อเสียจะต้องได้รับการพิจารณาล่วงหน้า
แบ่งปัน: วิธีแก้ปัญหาของชื่อตัวละครที่ถูกสกัดกั้นด้านซ้ายที่มีความยาวแตกต่างกัน เรามักจะเห็นว่าเมื่อเราใช้ด้านซ้ายเพื่อตัดสตริงเพราะตัวละครจีนและภาษาอังกฤษอยู่ร่วมกันในชื่อเรื่องข่าวทั้งสองมีความยาวแตกต่างกัน เพื่อแก้ปัญหานี้เราสามารถใช้ฟังก์ชั่นต่อไปนี้ % '***************************************************************************************************************