เรารู้ว่าโดยทั่วไปแล้วการควบคุมนั้นซับซ้อนกว่าโมดูลที่ใช้ฟังก์ชันเดียวกันเท่านั้น เนื่องจากเราจำเป็นต้องพิจารณาข้อยกเว้นและความสามารถในการปรับตัวเพิ่มเติมเพื่อให้บรรลุผลของการรวมและการนำโค้ดกลับมาใช้ใหม่ และเมื่อเราพัฒนาตัวควบคุม ASP.NET ไม่ว่าฟังก์ชันและประสิทธิภาพ UI ของการควบคุมของเราจะซับซ้อนเพียงใด สิ่งที่เราได้รับในเบราว์เซอร์ไคลเอนต์ก็เป็นเพียงการผสมผสานระหว่างโค้ด HTML และสคริปต์
สำหรับโค้ด HTML ที่สร้างโดยส่วนควบคุมเหล่านี้ สามารถประมวลผลรูปแบบได้ตามต้องการหรือไม่ แล้วการไม่เป็นอิสระหมายความว่าอย่างไร? เราต้องมั่นใจในการจัดรูปแบบของโค้ด HTML และรักษาการเยื้อง HTML แบบลำดับชั้นที่ดีหรือไม่? ในทางตรงกันข้าม เราควรพยายามลบสิ่งใดๆ ก็ตามที่ไม่เกี่ยวข้องกับโค้ด HTML ของตัวควบคุม รวมถึงช่องว่างที่ "ไร้ประโยชน์" และการขึ้นบรรทัดใหม่ด้วย เหตุใดจึงเน้นย้ำสิ่งที่ไร้ประโยชน์? เรารู้ว่าเมื่อเบราว์เซอร์ประมวลผลซอร์สโค้ด HTML การเว้นวรรคต่อเนื่องและการขึ้นบรรทัดใหม่จะถูกประมวลผลและแสดงเป็นช่องว่างเดียว ดังนั้น ดูเหมือนว่าเราไม่จำเป็นต้องดูแลเกี่ยวกับช่องว่างไร้ประโยชน์พิเศษหรือการขึ้นบรรทัดใหม่ก่อน หลัง หรือตรงกลางของโค้ด HTML เมื่อมีการแสดงตัวควบคุม ASP.NET ลองมาดูตัวอย่างต่อไปนี้: <img id="analysisChart" src="ChartPic_000007.jpeg?B9FA64E7-2020-4430-AAF4-B20A51794909" usemap="#usemap_analysisChart">
<map id="usemap_analysisChart">
<พื้นที่>...<พื้นที่>
</แผนที่>
'www.downcodes.com'
ข้อมูลโค้ดข้างต้นคือโค้ด HTML ที่ส่งออกโดยตัวควบคุมแผนภูมิเว็บใน Dundas Web Controls ดูเหมือนว่าจะไม่มีปัญหาเมื่อใช้รูปภาพแผนภูมินี้กับพื้นที่ร้อน หากคุณใช้แผนภูมินี้เพียงอย่างเดียว ก็ไม่มีปัญหาแน่นอน แต่เมื่อเรารวมแผนภูมิ Dundas เข้ากับ WebControl แบบกำหนดเอง โค้ด HTML ที่มีการแบ่งบรรทัดและการเยื้องทำให้เกิดปัญหา เนื่องจากความต้องการด้านเลย์เอาต์ ฉันจึงต้องใส่แผนภูมินี้ลงในตารางและให้ตารางแสดงเส้นขอบพิกเซลที่ล้อมรอบแผนภูมิอย่างใกล้ชิด เดิมทีลักษณะของแผนภูมินี้เป็นเพียงรูปภาพ และดูเหมือนว่าจะไม่มีปัญหากับชุดค่าผสมนี้ อย่างไรก็ตาม สถานการณ์จริงก็คือรูปภาพของแผนภูมิไม่สามารถเติมเต็มตารางด้านนอกได้ (ดังที่แสดงด้านล่าง) และที่นั่น มีช่องว่างที่ด้านล่างของภาพและขอบด้านล่างของตารางเสมอ ช่องว่างนี้เกิดจากการเว้นวรรคและการแบ่งบรรทัดระหว่าง <img /> และ <map> (แม้ว่า IE จะถือว่าเป็นช่องว่างเท่านั้น)
|
เนื่องจาก Dundas Web Chart เป็น dll ที่คอมไพล์แล้ว จึงกลายเป็นเรื่องยุ่งยากมากขึ้นในการลบช่องว่างที่ไม่มีประโยชน์และการส่งคืนแคร่ใน HTML ที่ส่งออก เราทำได้เพียงนำโค้ด HTML ออกจากสตรีม Render จากนั้นจึงลบช่องว่างและการขึ้นบรรทัดใหม่ระหว่างแท็กด้วยตนเอง จากนั้นจึงส่งออกไปยังเอาต์พุตสตรีมของตัวควบคุมใหม่ แม้ว่าวิธีนี้จะสามารถแก้ปัญหาได้บางประการ แต่หากการควบคุมภายในซับซ้อนเกินไป จะเป็นภาระเพิ่มเติมในด้านความถูกต้องและประสิทธิภาพ
ดังนั้นจากคำถามข้างต้น เราจะเห็นว่าเมื่อเราสร้างตัวควบคุม ASP.NET โค้ด HTML ที่ถูกแสดงผลในที่สุดควรเป็นไปตาม "หลักการความกระชับของโค้ด" เพื่อปรับปรุงความสามารถในการปรับตัวของตัวควบคุม ภายใต้หลักการนี้ ตัวอย่างก่อนหน้านี้ควรมีลักษณะดังนี้:
<img id="analysisChart" src="ChartPic_000007.jpeg?B9FA64E7-2020-4430-AAF4-B20A51794909" usemap="#usemap_analysisChart"><map id="usemap_analysisChart"><area>...<area></ แผนที่>
ด้วยวิธีนี้ รูปภาพแผนภูมิจะอยู่ใกล้กับเส้นขอบตารางที่อยู่รอบๆ