Do JavaScriptu 1.6 byl implementován standard E4X (CMA 357). E4X velmi usnadňuje práci s XML dokumenty – přístup k elementům, dotazy a další věci, které byly doposud řešitelné jen pomocí DOM (často velmi neohrabaně).
Podpora tohoto standardu velmi zjednodušuje a zefektivňuje vývoj komplexních webových aplikací, kde je manipulace se stromem dokumentu na denním pořádku. Ostatně, podívejte se sami na ukázku identického kódu, implementovaného nejdříve pomocí konvenčního DOM a poté s využitím E4X (příklad je převzat přímo ze specifikace E4X):
DOM:
function createTable () { var mybody = document.getElementsByTagName("body").item(0); mytable = document.createElement("TABLE"); mytablebody = document.createElement("TBODY"); for (var j = 0; j < 2; j++) { mycurrent_row = document.createElement("TR"); for (var i = 0; i < 2; i++) { mycurrent_cell = document.createElement("TD"); currenttext = document.createTextNode("cell is row " + j + ", column " + i); mycurrent_cell.appendChild(currenttext); mycurrent_row.appendChild(mycurrent_cell); } mytablebody.appendChild(mycurrent_row); } mytable.appendChild(mytablebody); mybody.appendChild(mytable); mytable.setAttribute("border", "2"); }
E4X:
function createTable() { var doc = XML(document); // vytvoříme E4X objekt pro dokument var mytablebody = doc..body.TABLE.TBODY; for (var j = 0; j < 2; j++) { mytablebody.TR[j] = ""; // přidáme prázdný řádek tabulky for (var i = 0; i < 2; i++) // přidáme buňky s obsahem mytablebody.TR[j].TD[i] = "cell is row " + j + ", column " + i; } doc..body.TABLE.@border = 2; // nastavíme tabulce hodnotu atributu border }
Použití E4X ve skriptech
Pokud chcete ve svém skriptu používat E4X, je vhodné takový skript označit speciálním MIME typem:
<script type="text/javascript; e4x=1">
Použijete-li standardní MIME typ text/javascript (tj. bez přípony e4x=1
), E4X bude fungovat také, ale může dojít k syntaktickým chybám, pokud své skripty vkládáte mezi HTML komentáře (<-- ... -->
) nebo do XML CDATA sekce (<[CDATA[...]]>
).
Další informace o E4X
O E4X se dozvíte více v článku v Akta X 0407 na Root.cz.
Standard E4X je součástí normy ECMA 357. Do JavaScriptu byl zahrnut ve verzi 1.6.
Informace o původním dokumentu
- Autor: David Majda