klaus_b
Avatar klaus_b
Themenersteller
Er ernährt mich ;-)
Content Meister (328 Beiträge)

Werden comment tags noch benötigt?

am 05.03.2011, 14:16 Uhr eröffnete klaus_b folgenden Thread
AJAX & JavaScript (JS)    3029 mal gelesen    7 Antwort(en).

Hallo zusammen,

gibt es heutzutage noch eine Begründung für die umschließenden comment-tags um einen Javascriptblock?
In früherer Zeit, als Javascript eher noch eine Seltenheit war, war es durchaus sinnvoll den Scriptblock mir Kommentar-Tags zu umschließen.
Aber heute? Ich konnte bis jetzt noch keinen nachteiligen Effekt erkennen, wenn ich die comment tags entferne.
Was meint iht dazu? Sind comment tags noch erforderlich?

Servus,
Klaus


klaus_b@.NET über alles was an .NET und C# Spass macht.

joerg
Avatar joerg
Fachinformatiker Anwendungsentwicklung
Content Gott (1941 Beiträge)
am 05.03.2011, 15:11 Uhr schrieb joerg

Hallo Klaus

Sprechen wir an der Stelle über HTML oder XHTML?

Für interne Javascript Anweisungen habe ich mal gelesen das man sie für XHTML besser in einem Cdata Bereich setzen sollte.

Momentan würde ich es für die beste Verhaltensweise erachten Javascript nach extern zu verlagern um deine Fragestellung auf diesem Wege zu umgehen.

Mein Wissen in diesem Bereich ist aber auch minimal.

Gruß
Jörg


Zufällige Umleitung zu der Startseite einer meiner Domains
Meine ungewöhnlichen Tools

klaus_b
Avatar klaus_b
Er ernährt mich ;-)
Content Meister (328 Beiträge)
am 05.03.2011, 15:35 Uhr schrieb klaus_b

Hallo Jörg,

joerg schrieb:
Sprechen wir an der Stelle über HTML oder XHTML?

Sorry, hab ich vergessen zu erwähnen. Natürlich XHTML.
Ich habe testweise Inline-Javascript in einer XHTML1.1 Seite in CDATA-Blöcke gesetzt und in der selben Seite auch ohne CDATA-Blöcke direkt in das HTML geschrieben. Ich konnte im Browser (IE9 RC) keinen Unterschied feststellen. Andere Browser werden sich warscheinlich genauso verhalten; oder etwa nicht?

Javascript extern ist meist eine gute Idee. Allerdings erzeuge ich mit .NET einiges an Javascript während der Laufzeit. In dem Fall ist es einfacher mit Inline-Script zu arbeiten und in den Output-Stream zu schreiben, anstatt das erzeugte Javascript erst auf die Platte zu speichern und dann auszuliefern. Das dauert mir zu lange

Servus,
Klaus


klaus_b@.NET über alles was an .NET und C# Spass macht.

Raptor
Avatar Raptor
IT-Student
Content Gott (1013 Beiträge)
am 05.03.2011, 15:53 Uhr schrieb Raptor

klaus_b schrieb:

gibt es heutzutage noch eine Begründung für die umschließenden comment-tags um einen Javascriptblock?


Jein.

JavaScript ist kein (X)HTML und muss daher irgendwie vom (X)HTML-Code differenziert werden.

In HTML macht man das normalerweise mit einem Kommentarblock und in XHTML mit <![CDATA[ ]]>. Wobei die Wahl nichts mit dem Doctype zu tun hat, sondern mit dem Parser.

Folgendes Beispiel ist ungültig:
[html]<script type="text/javascript">
if(a < b) c = d;
</script>[/html]
Die Zeichenfolge "< b)" ist ungültiges (X)HTML.
Hier müsste man den JavaScript-Code unschädlich machen
[html]<script type="text/javascript">

</script>[/html]
Und schon hat man gültiges HTML.

Aber dieser JavaScript-Block würde in XHTML nicht funktionieren, weil Kommentare vom XML-Parser rausgespickt werden. In X(HT)ML muss man Fremdcode in CDATA-Blöcke setzen:
[html]<script type="text/javascript">
<![CDATA[
if(a < b) c = d;
]]>
</script>[/html]
Jetzt hat man korrektes X(HT)ML. Ein paar HTML-Parser haben aber wieder Probleme mit dem "HTML"-Code im CDATA oder verstehen\'s einfach nicht. Da macht man am besten einfach ein Kommentar-Block in den CDATA-Block.
[html]<script type="text/javascript">
<![CDATA[]]>
</script>[/html]

Jetzt gibt es noch die komischen Parser, die das "<![CDATA[]]>*/
</script>[/html]
Jetzt ist alles OK.

Bei folgendem Beispiel braucht es aber keine Kommentar-Blöcke:
[html]<script type="text/javascript">
if(a == b) c = d;
</script>[/html]
... weil es keine HTML/XHTML/XML-Steuerzeichen enthält.


Meine Developer-Website mit den Web-Entwickler-Tools.
Meine Web-Entwicklungs-Dienstleistungen

[url="http://www.seitenreport.de/forum/beitraege/seitenreport_verlosungen/wichtig_neue_regel

klaus_b
Avatar klaus_b
Er ernährt mich ;-)
Content Meister (328 Beiträge)
am 05.03.2011, 16:12 Uhr schrieb klaus_b

Hallo Flo,

zur selben Erkenntnis bin ich auch gerade gelangt.
Ich habe in einem Scriptblock eine && Bedingung und schon war Essig mit validem Code :oops:

Ich werde die Scriptblöcke auch weiterhin in einen CDATA-Block einschließen.

Danke euch beiden für die Anregungen.
Servus,
Klaus


klaus_b@.NET über alles was an .NET und C# Spass macht.

romacron
JDev Xer
Content Gott (1224 Beiträge)
am 08.03.2011, 18:35 Uhr schrieb romacron

Fantastische Herleitung.

in diesem Moment habe ich sie schon verwenden müssen/wollen.
Problem war, das ich im js url "&" schrieb.

3 fach kommented nach methode flo, alles wieder Roger

:pepsi:


klaus_b
Avatar klaus_b
Er ernährt mich ;-)
Content Meister (328 Beiträge)
am 09.03.2011, 09:00 Uhr schrieb klaus_b

romacron schrieb:

Problem war, das ich im js url "&" schrieb.


Warum musst du da ein "&" schreiben, wenn es doch ein "&" auch tut? In URLs kann IMO immer die Entität & verwendet werden.

Servus,
Klaus


klaus_b@.NET über alles was an .NET und C# Spass macht.

romacron
JDev Xer
Content Gott (1224 Beiträge)
am 09.03.2011, 09:58 Uhr schrieb romacron

Okay
hatt ich nich ganz präzise ausgeführt.

es ist für ajax die & sind universelle Steuersignale die theoretisch auch urls sein können. ein & ohne amp hat weniger daten(ich spare gern)


  • 1


« zurück zu: AJAX & JavaScript (JS)

Das Seitenreport Forum hat aktuell 5270 Themen und 36106 Beiträge.
Insgesamt sind 48314 Mitglieder registriert.