Wir wissen, dass die Erstellung eines Steuerelements im Allgemeinen komplizierter ist als die Erstellung eines Moduls, das nur dieselbe Funktion implementiert, da wir mehr Ausnahmen und Anpassungsfähigkeit berücksichtigen müssen, um den Effekt der Integration und Wiederverwendung von Code zu erzielen. Und wenn wir ein ASP.NET-Steuerelement entwickeln, erhalten wir im Client-Browser letztendlich nur eine Kombination aus HTML-Code und Skripten, egal wie komplex die Funktionen und die UI-Leistung unseres Steuerelements sind.
Können die Formate der von diesen Steuerelementen generierten HTML-Codes nach Belieben verarbeitet werden? Was bedeutet es also, nicht frei zu sein? Müssen wir die Formatierung des HTML-Codes sicherstellen und eine gute hierarchische Einrückung von HTML beibehalten? Im Gegenteil, wir sollten hier versuchen, alles zu entfernen, was nichts mit dem HTML-Code des Steuerelements zu tun hat, einschließlich „nutzloser“ Leerzeichen und Wagenrückläufe. Warum das Nutzlose betonen? Wir wissen, dass bei der Verarbeitung des HTML-Quellcodes durch den Browser aufeinanderfolgende Leerzeichen und Wagenrückläufe verarbeitet und als ein Leerzeichen angezeigt werden. Daher müssen wir uns offenbar nicht um die zusätzlichen nutzlosen Leerzeichen oder Wagenrückläufe vor, nach oder in der Mitte des HTML-Codes kümmern, wenn das ASP.NET-Steuerelement gerendert wird. Schauen wir uns also das folgende Beispiel an: <img id="analysisChart" src="ChartPic_000007.jpeg?B9FA64E7-2020-4430-AAF4-B20A51794909" usemap="#usemap_analysisChart">
<map id="usemap_analysisChart">
<Bereich>...<Bereich>
</map>
„www.downcodes.com
Der obige Codeausschnitt ist der HTML-Code, der vom Web Chart-Steuerelement in Dundas Web Controls ausgegeben wird. Es scheint kein Problem zu geben, wenn Sie dieses Diagrammbild mit einem heißen Bereich verwenden. Wenn Sie nur dieses Diagramm allein verwenden, gibt es tatsächlich kein Problem. Wenn wir Dundas Chart jedoch in ein benutzerdefiniertes WebControl integrieren, verursacht der HTML-Code mit Zeilenumbrüchen und Einrückungen Probleme. Aufgrund von Layoutanforderungen muss ich dieses Diagramm in eine Tabelle einfügen und dafür sorgen, dass die Tabelle einen Pixelrand anzeigt, der das Diagramm eng umgibt. Ursprünglich war das Erscheinungsbild dieses Diagramms nur ein Bild, und bei dieser Kombination schien es kein Problem zu geben. Die tatsächliche Situation ist jedoch, dass das Bild des Diagramms niemals die äußere Tabelle ausfüllen konnte (wie unten gezeigt). Es gab immer Lücken am unteren Bildrand und am unteren Rand der Tabelle. Es gibt eine Lücke von 3-4 Pixeln. Diese Lücke wird durch das Leerzeichen und den Zeilenumbruch zwischen <img /> und <map> verursacht (obwohl IE es nur als Leerzeichen behandelt).
|
Da Dundas Web Chart eine veröffentlichte kompilierte DLL ist, wird es schwieriger, unnötige Leerzeichen und Wagenrückläufe im ausgegebenen HTML zu löschen. Wir können den HTML-Code nur aus seinem Render-Stream herausnehmen, dann die Leerzeichen und Wagenrückläufe zwischen den Tags manuell entfernen und ihn dann an den Ausgabestream des neuen Steuerelements ausgeben. Obwohl diese Methode einige Probleme lösen kann, stellt sie eine zusätzliche Belastung in Bezug auf Genauigkeit und Effizienz dar, wenn die internen Kontrollen zu komplex sind.
Aus den obigen Fragen können wir also ersehen, dass bei der Erstellung eines ASP.NET-Steuerelements der letztendlich gerenderte HTML-Code dem „Code-Kompaktheitsprinzip“ folgen sollte, um die Anpassungsfähigkeit des Steuerelements zu verbessern. Nach diesem Prinzip sollte das vorherige Beispiel so aussehen:
<img id="analysisChart" src="ChartPic_000007.jpeg?B9FA64E7-2020-4430-AAF4-B20A51794909" usemap="#usemap_analysisChart"><map id="usemap_analysisChart"><area>...<area></ Karte>
Auf diese Weise grenzt das Diagrammbild eng an den es umgebenden Tabellenrand an.