แนะนำ: ASP: พิจารณาว่าการเข้าถึงมาจากเครื่องมือค้นหาหรือไม่ ในการตรวจสอบว่าการเข้าถึงมาจากฟังก์ชั่นของเครื่องมือค้นหาหากคุณสนใจคุณสามารถลองได้! ต่อไปนี้เป็นเนื้อหาอ้างอิง: <%'ตรวจสอบว่าผู้ใช้ปัจจุบันเป็นฟังก์ชั่น Spider-Man ตรวจสอบ (user_agent)
บทที่ 10 ASP และข้อมูลลูกค้าข้อมูลลูกค้าถูกกล่าวถึงในเอกสาร ASP หรือไม่? สิ่งนี้ขัดแย้งกับการเขียนโปรแกรม ASP ฝั่งเซิร์ฟเวอร์หรือไม่? นี่ไม่ใช่กรณีเพราะเรายังไม่ได้พบกับโปรแกรมเมอร์ ASP ที่ทำงานในการเขียนโปรแกรมฝั่งเซิร์ฟเวอร์เท่านั้น แม้ว่า ASP จะเป็นเทคโนโลยีฝั่งเซิร์ฟเวอร์ แต่ก็เป็นไปไม่ได้ที่จะเป็นไปไม่ได้ที่โปรแกรมเมอร์จะโปรแกรมโดยใช้ ASP เพียงอย่างเดียว นักพัฒนาเว็บที่มีส่วนร่วมในการเขียนโปรแกรม ASP ยังคงต้องโต้ตอบกับข้อมูลลูกค้า
ดังนั้นเมื่อสร้างแอปพลิเคชันรอบ ASP สถานการณ์แอปพลิเคชันทั้งหมดจะต้องได้รับการพิจารณาซึ่งหมายความว่าลูกค้าจะต้องได้รับการพิจารณา ในการรับแอปพลิเคชั่นที่ตอบสนองได้ดีและตอบสนองอย่างรวดเร็วคุณต้องใช้ข้อมูลไคลเอนต์ได้ดี
บทนี้กล่าวถึงวิธีการใช้ข้อมูลทางฝั่งไคลเอ็นต์ การมุ่งเน้นเป็นพิเศษคือการวิจัย:
·บริการข้อมูลระยะไกล (RDS) วิธีส่งข้อมูลไปยังลูกค้าและรับข้อมูล
·วิธีการผูกระเบียน ADO ที่ตั้งค่าไว้กับการควบคุม HTML
·วิธีใช้ส่วนประกอบที่ผู้ใช้กำหนดเพื่อให้ข้อมูล
·วิธีอัปเดตข้อมูลไคลเอนต์และป้อนกลับไปยังเซิร์ฟเวอร์
·วิธีรับภาพจากฐานข้อมูลและแสดงในหน้าเว็บ
·วิธีสร้างหน้าเว็บบนตาราง
ความครอบคลุมข้างต้นค่อนข้างกว้างและมีวิธีการที่แตกต่างกันมากมายเพื่อให้ได้ผลลัพธ์เดียวกัน แต่ก็ไม่ยากที่จะนำไปใช้
10.1 ชุดบันทึกที่เชื่อมต่อ
สิ่งแรกที่คุณต้องใช้คือแนวคิดของข้อมูลที่ตัดการเชื่อมต่อ จนถึงตอนนี้ในกระบวนการศึกษา ADO วิธีการรับชุดบันทึกและวิธีการแก้ไขข้อมูลในชุดบันทึกเหล่านี้ได้รับการเรียนรู้ ในการตรวจสอบเราเปิดชุดระเบียนทำการปรับเปลี่ยนข้อมูลบางอย่างจากนั้นปิดชุดระเบียนนี้ ในระหว่างกระบวนการใช้งานชุดบันทึกเรามักจะรักษาการเชื่อมต่อกับเซิร์ฟเวอร์ นี่ค่อนข้างชัดเจน แต่อย่าลืมว่าเว็บไร้สัญชาติในธรรมชาติ หากคุณต้องการใช้ข้อมูลไคลเอนต์คุณจะรักษาการเชื่อมต่อกับเซิร์ฟเวอร์ได้อย่างไร มันง่ายนี่เป็นไปไม่ได้และนี่คือเหตุผลที่กำหนดแนวคิดของชุดบันทึกที่ไม่เชื่อมต่อ
ชุดระเบียนที่ตัดการเชื่อมต่อเป็นเพียงชุดระเบียนปกติ แต่ไม่เชื่อมต่อกับเซิร์ฟเวอร์และกลายเป็นวัตถุที่แยกได้ สามารถอัปเดตเพิ่มและลบได้เช่นชุดเร็กคอร์ดปกติ แต่การเปลี่ยนแปลงเหล่านี้เกิดขึ้นภายในชุดระเบียนเท่านั้นและไม่ได้ป้อนกลับไปยังเซิร์ฟเวอร์เนื่องจากชุดระเบียนไม่มีการเชื่อมต่อกับเซิร์ฟเวอร์อีกต่อไป นี่ไม่ใช่ข้อเสียเนื่องจากการเชื่อมต่อสามารถสร้างขึ้นใหม่ด้วยเซิร์ฟเวอร์ในขณะที่เซิร์ฟเวอร์สามารถอัปเดตการแก้ไขใด ๆ แม้ว่าข้อมูลฝั่งเซิร์ฟเวอร์มีการเปลี่ยนแปลง ADO ยังคงมีวิธีที่ผู้ใช้จะค้นพบการเปลี่ยนแปลงเหล่านี้ในเวลาที่เหมาะสมเพื่อให้ผู้ใช้สามารถตัดสินใจได้ว่าข้อมูลใดถูกต้อง สิ่งนี้เรียกว่าการแก้ไขข้อขัดแย้ง
ชุดบันทึกที่เชื่อมต่อช่วยให้เราสามารถส่งมอบชุดบันทึกด้วยฟังก์ชั่นเต็มรูปแบบระหว่างส่วนประกอบรวมถึงระหว่างเซิร์ฟเวอร์และลูกค้า บทนี้จะสำรวจวิธีการสร้างชุดระเบียนที่ตัดการเชื่อมต่อภายในส่วนประกอบ อย่างไรก็ตามเราไม่ได้วางแผนที่จะทำวิจัยโดยละเอียดเกินไปเพราะบทที่ 13 ถึง 18 ของหนังสือเล่มนี้ได้กล่าวถึงส่วนนี้ของเนื้อหา ที่นี่เราจะให้คำแนะนำสั้น ๆ เกี่ยวกับวิธีการที่ส่วนประกอบโต้ตอบกับบริการข้อมูลระยะไกล
10.2 บริการข้อมูลระยะไกล
Remote Data Services (RDS) เป็นคำทั่วไปสำหรับชุดบริการที่อนุญาตให้เราประมวลผลข้อมูลลูกค้า ไม่จำเป็นต้องกังวลเกี่ยวกับปัญหานี้ในตอนนี้เนื่องจาก RDS เองเป็นส่วนหนึ่งของ ADO และจะใช้เฉพาะเมื่อข้อมูลลูกค้าจำเป็นต้องส่งและใช้งาน ในความเป็นจริง RDS ประกอบด้วยหลายองค์ประกอบ รูปที่ 10-1 แสดงส่วนประกอบเหล่านี้และวิธีการทำงานร่วมกัน
รูปที่ 10-1 องค์ประกอบองค์ประกอบของ RDS
ดูเหมือนจะมีส่วนประกอบจำนวนมาก แต่ไม่ใช่ทั้งหมดที่ใช้ในทุกกรณีและมีบางส่วนที่ไม่ได้เป็นส่วนหนึ่งของ RDS อย่างไรก็ตามส่วนประกอบที่เป็นไปได้ทั้งหมดจะถูกวางไว้บนแผนภาพที่นี่ในกรณีที่คุณต้องการ รูปที่ 10-1 แบ่งออกเป็นสองส่วนเนื่องจากการใช้ข้อมูลไคลเอนต์ต้องใช้วิธีการบางอย่างในการส่งข้อมูลไปยังไคลเอนต์ ในเวลาเดียวกันเมื่อข้อมูลมาถึงไคลเอนต์จำเป็นต้องมีบางวิธีในการจัดการข้อมูลด้วย เริ่มต้นด้วยฝั่งเซิร์ฟเวอร์กันเถอะ
10.2.1 ส่วนประกอบเซิร์ฟเวอร์ RDS
ในขณะที่ RDS ใช้ในการถ่ายโอนและเข้าถึงข้อมูลไคลเอนต์ แต่ก็มีส่วนประกอบที่ใช้เซิร์ฟเวอร์บางส่วน สิ่งนี้จำเป็นเพราะมีความจำเป็นอย่างยิ่งที่จะต้องถ่ายโอนข้อมูลไปยังลูกค้าอย่างแน่นอน ดังนั้นจึงมีชุดของส่วนประกอบเซิร์ฟเวอร์ที่สามารถเข้าถึงข้อมูลและอนุญาตให้ส่งข้อมูลไปยังไคลเอนต์ เราเรียกจอมพลการส่งข้อมูลจริง
ปลายด้านบนของไดอะแกรมส่วนประกอบฝั่งเซิร์ฟเวอร์คือการจัดเก็บข้อมูลเข้าถึงได้โดยผู้ให้บริการ OLE DB มันไม่ได้เป็นส่วนหนึ่งของ RDS แต่หมายความว่าสามารถใช้ข้อมูลใด ๆ กับลูกค้าผ่าน RDS ตราบใดที่มีผู้ให้บริการ OLE DB ที่สอดคล้องกัน สำหรับวิธีการประมวลผลข้อมูลบนเซิร์ฟเวอร์มีสองตัวเลือก:
· DataFactory เป็นส่วนประกอบฝั่งเซิร์ฟเวอร์เริ่มต้นสำหรับการเข้าถึงการจัดเก็บข้อมูล มันถูกติดตั้งบนคอมพิวเตอร์ซึ่งเป็นส่วนหนึ่งของส่วนประกอบ RDS ฝั่งเซิร์ฟเวอร์ นอกเหนือจากการได้รับข้อมูลจากการจัดเก็บข้อมูลแล้วยังประมวลผลข้อมูลที่ส่งไปและจากไคลเอนต์สำหรับเซิร์ฟเวอร์
·ส่วนประกอบที่กำหนดเองเป็นเพียงส่วนประกอบ COM ทั่วไปที่ให้วิธีการถ่ายโอนข้อมูล ส่วนประกอบที่กำหนดเองสามารถใช้ได้เมื่อโรงงานข้อมูลไม่สามารถให้ฟังก์ชั่นที่จำเป็นได้ บทนี้แนะนำตัวอย่างองค์ประกอบง่าย ๆ และมีตัวอย่างที่ซับซ้อนมากขึ้นในภายหลังในหนังสือ
เว็บเซิร์ฟเวอร์ใช้ส่วนประกอบทั้งสองนี้เป็นส่วนต่อประสานกับข้อมูลไคลเอนต์และเซิร์ฟเวอร์
10.2.2 ส่วนประกอบลูกค้า RDS
ไคลเอนต์เริ่มต้นด้วยวัตถุ DataSpace ที่ด้านล่างซึ่งทำงานร่วมกับโรงงานข้อมูลหรือวัตถุที่กำหนดเองเป็นส่วนหนึ่งของไคลเอนต์ วัตถุ DataSpace เป็นวัตถุพร็อกซีที่รับผิดชอบในการสื่อสารกับเซิร์ฟเวอร์และยังเป็นช่องทางสำหรับการส่งข้อมูล (หรือที่รู้จักกันทั่วไปว่าการตั้งเวลา) วัตถุ DataSpace เป็นวัตถุ COM ที่สร้างขึ้นในภาษาสคริปต์ไคลเอนต์หรือในแท็ก HTML คุณจะเห็นตัวอย่างเกี่ยวกับเรื่องนี้ในบทนี้ในภายหลัง
วัตถุ DataSpace เป็นวัตถุแหล่งข้อมูล (DSO) ที่รับผิดชอบในการจัดเก็บข้อมูลไคลเอนต์ วัตถุแหล่งข้อมูลมีชุดบันทึกข้อมูล ADO ที่จัดการข้อมูลพร้อมกับแคชข้อมูลลูกค้า การแคชข้อมูลลูกค้าเป็นเพียงบริการเคอร์เซอร์ลูกค้าที่จัดการข้อมูลลูกค้า ในเวลาเดียวกันวัตถุแหล่งข้อมูลเป็นวัตถุ COM คล้ายกับวัตถุ DataSpace และยังสามารถสร้างได้ผ่านสคริปต์ไคลเอนต์หรือใช้แท็ก <Ojrop> ในภาษา HTML ในทำนองเดียวกันตัวอย่างบางส่วนของแง่มุมนี้จะถูกนำมาใช้ในภายหลังในบทนี้
เหนือวัตถุแหล่งข้อมูลคือตัวจัดการข้อมูลที่มีผลผูกพันและงานคือการสร้างการเชื่อมต่อระหว่างการควบคุม HTML และวัตถุแหล่งข้อมูล นี่คือสิ่งที่เรารู้เกี่ยวกับการเชื่อมโยงซึ่งสามารถทำได้โดยการตั้งค่าคุณสมบัติ DATASRC และ DATAFLD ของการควบคุม HTML บางอย่าง สิ่งเหล่านี้จะกล่าวถึงด้านล่างและสาธิตวิธีการใช้ข้อมูลได้อย่างง่ายดายในเบราว์เซอร์
10.2.3 เบราว์เซอร์ที่รองรับ RDS
คุณควรรู้ว่า RDS เป็นเทคโนโลยีของ Microsoft ดังนั้นจึงสามารถใช้งานได้กับเบราว์เซอร์ของ Microsoft เท่านั้น ในความเป็นจริง RDS ได้รับการสนับสนุนอย่างเต็มที่ในเบราว์เซอร์ที่มี IE 4.0 หรือสูงกว่าเท่านั้น
เมื่อเขียนแอปพลิเคชันที่พึ่งพา RDS เป็นสิ่งสำคัญที่จะต้องทราบว่าเวอร์ชัน RDS ของไคลเอนต์ที่เข้าถึงแอปพลิเคชันอาจแตกต่างจากฝั่งเซิร์ฟเวอร์ ตัวอย่างเช่น RDS 1.5 อยู่ใน IE 4 ในขณะที่ RDS 2.0 อยู่ใน IE 5, Office 2000 และ Visual Studio 6 มีสองวิธีในการจัดการกับปัญหาความเข้ากันได้นี้:
·ตรวจสอบให้แน่ใจว่าผู้ใช้ทุกคนอัพเกรดเป็น RDS เวอร์ชันล่าสุด หากลูกค้าใช้ Windows 2000 เวอร์ชันล่าสุดของ RDS กำลังทำงานอยู่แล้ว มิฉะนั้นคุณสามารถดาวน์โหลดได้จาก URL www.microsoft.com/data ปัจจุบัน RDS 2.5 เป็นเวอร์ชันล่าสุดที่เปิดตัวด้วย Windows 2000 และยังเป็นแพ็คเกจซอฟต์แวร์ที่สามารถดาวน์โหลดได้แยกกัน
·ระบุโหมดของโรงงานข้อมูลเมื่อเชื่อมต่อกับแหล่งข้อมูล สิ่งนี้สามารถระบุได้ว่าส่วนประกอบ RDS รุ่นใดที่ใช้และตัวอย่างของสิ่งนี้จะถูกนำมาใช้ในภายหลัง
10.2.4 วัตถุแหล่งข้อมูล
วัตถุแหล่งข้อมูลเป็นวัตถุไคลเอนต์ที่จัดเก็บและจัดการข้อมูลไคลเอนต์ เนื่องจากนี่เป็นวิธีที่ง่ายที่สุดในการใช้ RDS ก่อนอื่นดูที่วัตถุเหล่านี้
นี่คือวัตถุแหล่งข้อมูลที่แตกต่างกันแต่ละรายการสำหรับข้อมูลประเภทต่าง ๆ :
·การควบคุมข้อมูลแบบตาราง (TDC) ใช้ในการประมวลผลไฟล์ข้อความในตารางหรือแบบฟอร์มคั่น
·การควบคุมข้อมูล RDS ที่ใช้ในการเชื่อมต่อกับ DataStores OLE DB สามารถระบุที่เก็บข้อมูลที่จะเชื่อมต่อและข้อมูลใดที่ถูกส่งคืน
·ตัวเชื่อมต่อฐานข้อมูล Java, แอปเพล็ต Java ที่เชื่อมต่อกับการจัดเก็บข้อมูลผ่านการควบคุมฐานข้อมูล Java (JDBC) เราไม่ต้องการหารือเกี่ยวกับ JDBC ที่นี่เพราะมันไม่ได้ให้ฟังก์ชั่นที่การควบคุมอื่นไม่สามารถบรรลุได้
· HTML (MSHTML) ของ Microsoft ข้อมูลแท็กวัตถุแหล่งข้อมูลด้วย HTML และใช้เป็นแหล่งข้อมูล
·วัตถุแหล่งข้อมูล XML ใช้ข้อมูล XML ใช้สำหรับ XML ที่มีโครงสร้างหรือโครงสร้างโดยพลการ
วัตถุแหล่งข้อมูลใดที่จะเลือกขึ้นอยู่กับสิ่งที่คุณต้องการทำและข้อมูลมาจากไหน หากจำเป็นต้องมีข้อมูลจำนวนเล็กน้อยให้กับลูกค้าและผู้ใช้ไม่อนุญาตให้ผู้ใช้แก้ไขข้อมูลการควบคุมข้อมูลตาราง (TDC) อาจเหมาะสมกว่า แหล่งข้อมูลนี้เป็นไฟล์ข้อความที่ไม่ต้องการฐานข้อมูลใด ๆ ดังนั้นจึงค่อนข้างง่ายในการแก้ไข การควบคุมข้อมูล RDS นั้นเหมาะสมที่สุดสำหรับสถานการณ์ที่ข้อมูลถูกดึงข้อมูลจากฐานข้อมูลและอาจต้องมีการอัปเดต สำหรับแหล่งข้อมูลใหม่จำนวนมากคุณจะพบว่าจำเป็นต้องมีการควบคุมข้อมูล XML ในเวลานี้ สิ่งนี้ขึ้นอยู่กับประเภทของเว็บแอปพลิเคชันที่ใช้และฟังก์ชั่นที่ผู้ใช้ต้องการ
เราจะแนะนำการควบคุมข้อมูลเหล่านี้ในทางกลับกันและเมื่อเราเข้าใจวิธีการใช้เพื่อถ่ายโอนข้อมูลไปยังลูกค้าเราจะแนะนำวิธีการใช้งาน
แบ่งปัน: การเขียนโปรแกรมขั้นสูง ASP 3.0 (35) 7.5.1 เทคนิคการดีบักทั่วไปในบทที่ 2 เราได้เห็นวิธีใช้วิธีการตอบสนองวิธีการเขียนและการรวบรวมคำขอเพื่อแสดงเนื้อหาของคอลเลกชัน หากรหัสต้องการใช้ค่าจากคำขอสิ่งแรกที่ต้องทำคือเพื่อให้แน่ใจว่ามีค่าที่ต้องการ ปัญหาที่เกิดขึ้นง่ายนั้นผิดหรือ