Une solution que j'utilise souvent (et qui fonctionne pas trop mal) est de générer du pseudo-xml.
En gros, tu définis des séparateurs sous forme de balises et tu imbriques le tout en fonction du résultat souhaité.
Par exemple, pour un tableau HTML, la réponse pourrait être du style :
responseText = "<ok>contenu1-1<1>contenu1-2<2>contenu2-1<1>contenu2-2"
Le <ok> sert juste à vérifier que la réponse est celle que j'attendais (dans la mesure où mes applis gèrent les exceptions et renvoient un résultat même s'il y a eu un problème).
Ensuite, pour construire la table coté JavaScript, je vérifie que la réponse est valide, puis j'utilise les méthodes du DOM :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| if(xhr.responseText.match(/^<ok>/){
var maTable = xhr.responseText.split('<ok>')[1].split('<2>');
var newTable = document.createElement('table'), newTR, newTD;
for(var i=0; i<maTable.length; i++){
newTR = document.createElement('tr');
mesTD = maTable[i].split('<1>');
for(j=0; j<mesTD.length; j++){
newTD = document.createElement('td');
newTD.appendChild(document.createTextNode(mesTD[j]);
newTR.appendChild(newTD);
}
newTable.appendChild(newTR);
}
div.appendChild(newTable);
} |
Partager