Kita tahu bahwa membuat kontrol umumnya lebih rumit daripada modul yang hanya mengimplementasikan fungsi yang sama, karena kita perlu mempertimbangkan lebih banyak pengecualian dan kemampuan beradaptasi untuk mencapai efek pengintegrasian dan penggunaan kembali kode. Dan ketika kita mengembangkan kontrol ASP.NET, tidak peduli betapa rumitnya fungsi dan kinerja UI dari kontrol kita, yang akhirnya kita dapatkan di browser klien hanyalah kombinasi kode dan skrip HTML.
Mengenai kode HTML yang dihasilkan oleh kontrol ini, dapatkah formatnya diproses sesuka hati? Jadi apa artinya tidak bebas? Apakah kita harus memastikan pemformatan kode HTML dan menjaga indentasi hierarki HTML dengan baik? Sebaliknya di sini, kita harus mencoba menghapus apa pun yang tidak ada hubungannya dengan kode HTML kontrol, termasuk spasi "tidak berguna" dan carriage return. Mengapa menekankan hal-hal yang tidak berguna? Kita tahu bahwa ketika browser memproses kode sumber HTML, spasi berturut-turut dan carriage return diproses dan ditampilkan sebagai satu spasi. Oleh karena itu, sepertinya kita tidak perlu peduli dengan spasi tambahan yang tidak berguna atau carriage return sebelum, sesudah, atau di tengah kode HTML ketika kontrol ASP.NET dirender. Jadi mari kita lihat contoh berikut: <img id="analisisChart" src="ChartPic_000007.jpeg?B9FA64E7-2020-4430-AAF4-B20A51794909" usemap="#usemap_analisisChart">
<peta id="usemap_analisisChart">
<daerah>...<daerah>
</peta>
'www.downcodes.com
Cuplikan kode di atas adalah output kode HTML oleh kontrol Web Chart di Dundas Web Controls. Sepertinya tidak ada masalah jika menggunakan gambar Chart ini dengan area yang panas, jika hanya menggunakan Chart ini saja memang tidak ada masalah. Namun saat kita menggabungkan Dundas Chart ke dalam WebControl khusus, kode HTML-nya dengan jeda baris dan lekukan menyebabkan masalah. Karena kebutuhan tata letak, saya perlu meletakkan Bagan ini ke dalam tabel dan membuat tabel tersebut menampilkan batas piksel yang mengelilingi Bagan. Awalnya tampilan Chart ini hanya berupa gambar, dan sepertinya tidak ada masalah dengan kombinasi ini. Namun, keadaan sebenarnya adalah gambar Chart tidak pernah bisa memenuhi tabel luar (seperti gambar di bawah), dan disana selalu ada celah di bagian bawah gambar dan tepi bawah tabel. Ada celah 3-4 piksel. Kesenjangan ini disebabkan oleh spasi dan jeda baris antara <img /> dan <map> (walaupun IE hanya memperlakukannya sebagai spasi).
|
Karena Dundas Web Chart adalah dll yang dikompilasi dan dirilis, akan lebih sulit untuk menghapus spasi yang tidak berguna dan pengangkutan kembali dalam HTML yang dihasilkannya. Kita hanya dapat mengambil kode HTML dari aliran Rendernya, lalu secara manual menghapus spasi dan pengangkutan di antara tag, lalu mengeluarkannya ke aliran keluaran dari kontrol baru. Walaupun cara ini dapat menyelesaikan beberapa masalah, namun jika pengendalian internal terlalu rumit akan menjadi beban tambahan dalam hal akurasi dan efisiensi.
Jadi dari pertanyaan di atas kita dapat melihat bahwa ketika kita membuat kontrol ASP.NET, kode HTML yang akhirnya dirender harus mengikuti "prinsip kekompakan kode" untuk meningkatkan kemampuan adaptasi kontrol. Berdasarkan prinsip ini, contoh sebelumnya akan terlihat seperti ini:
<img id="analisisChart" src="ChartPic_000007.jpeg?B9FA64E7-2020-4430-AAF4-B20A51794909" usemap="#usemap_analisisChart"><map id="usemap_analisisChart"><area>...<area></ peta>
Dengan cara ini, gambar Bagan berdekatan dengan batas tabel yang mengelilinginya.