luti: jsTree, XML und asynchrones Nachladen

Beitrag lesen

Hallo,

ich bastele gerade an einer dynamischen Baumstruktur. Die zu Grunde liegenden Daten liegen in einer Postgres-DB vor und umfassen in 7 Hierarchieebenen mit mehreren 1000 Einträgen. Mit PHP habe ich (dynamisch) eine nested XML-Datei erzeugt, so wie sie von jsTree verarbeitet wird.

Soweit so gut. Ich habe auch bereits eine funktionierende Version laufen, bei der die Daten „in einem Rutsch“ aus der XML-Datei gelesen werden. Leider dauert das initiale Laden etliche Sekunden – das ist bei der Datenmenge wohl verständlich. Daher möchte ich, dass erst beim Öffnen eines jeden Knotens die Daten dynamisch geladen werden. Hier scheitere ich jedoch, da fehlen mir wohl die entsprechenden Kenntnisse mit AJAX und JS …
Kann mir jemand helfen?

Hier das funktionierende, nicht-asynchrone Beispiel:

<script type="text/javascript">  
	$(function () {		  
		$("#tree")  
			.jstree({  
				"xml_data" : {  
					"ajax" : {  
						"url" : "treedata.xml.php"  
					},  
					"xsl" : "nest"  
				},  
				"plugins" : [ "themes", "xml_data" ],  
				"themes": {	"theme": "default", "dots": false, "icons": true }  
			});			  
	});  
</script>

Auf der jsTree-Seite gibt es ja ein Beispiel (Using the ajax config option (nested) und Using both the data & ajax config options (flat)), aber leider nicht ganz in der Kombination, die ich bräuchte. Wie muss der return-Teil bzw. die Funktion function (n) aussehen? Was muss in der XML-Datei stehen - der gesamte Baum?

Vielen Dank und Grüße!