ernie: AJAX-XMLHttpRequest im Objekt problem

Hi zusammen,
ich verzweifle hier noch ..

ich habe mir ein Objekt gebastelt und in diesem möchte ich eine datei laden, asynchron, wenn die datei geladen wurde, soll der inhalt der datei in dem objekt zur verfügung stehen, macht es aber nicht ..
-es soll zwingend asynchron sein

hier ein ausschnitt .. ich verstehe nur nicht warum, es scheint als würde JS in der Funktion das übergebene Objekt kopieren bzw. dass der Pointer aus der Funktion nicht "rauskommt" und das eigentliche Objekt die Daten nicht hält

  
function ReadConfigXML(filename){  
  this.data = null;  
  var xmlHttp = new XMLHttpRequest();  
  var tObj = this;  
  
  xmlHttp.onreadystatechange = function(){  
  if(xmlHttp.readyState == 4 ){  
  tObj.data= xmlHttp.responseText;  
}  
};  
}  

danke euch !

  1. Mein Ajax Request:

      
    function updateNews(section,seite,count) {  
    	  
    	if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari  
    		xmlhttp=new XMLHttpRequest();  
    	} else {// code for IE6, IE5  
    	  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");  
    	}  
    	  
    	xmlhttp.onreadystatechange=function() {  
    		if (xmlhttp.readyState==4 && xmlhttp.status==200) {  
    	    	var request = xmlhttp.responseText;  
    	    	document.getElementById('news_content').innerHTML = request;  
    	    }  
    	}  
    	xmlhttp.open("GET","ajax/get_news.php?section="+section+"&seite="+seite+"&pageLimit="+count,true);  
    	xmlhttp.send();  
      
    }  
      
    
    
  2. ich habe mir ein Objekt gebastelt und in diesem möchte ich eine datei laden, asynchron, wenn die datei geladen wurde, soll der inhalt der datei in dem objekt zur verfügung stehen, macht es aber nicht ..

    Zeig mal das Objekt.

    hier ein ausschnitt .. ich verstehe nur nicht warum, es scheint als würde JS in der Funktion das übergebene Objekt kopieren bzw. dass der Pointer aus der Funktion nicht "rauskommt" und das eigentliche Objekt die Daten nicht hält

    Wo übergibst du denn ein Objekt?!

    function ReadConfigXML(filename){
      this.data = null;
      var xmlHttp = new XMLHttpRequest();
      var tObj = this;

    xmlHttp.onreadystatechange = function(){
      if(xmlHttp.readyState == 4 ){
      tObj.data= xmlHttp.responseText;
    }
    };
    }

      
    Wie rufst du die Funktion auf und worauf zeigt this beim Aufruf?  
      
    Wenn du die Funktion nicht als Methode eines Objektes oder mit call/apply aufrufst, so zeigt this auf window.  
      
    So etwa ginge es:  
      
    ~~~javascript
    var obj = {  
       readConfigXML : function () {  
          this.data = null;  
          var xhr = new XMLHttpRequest();  
          xhr.open('GET', '...', true);  
          xhr.onreadystatechange = function () {  
             if (xhr.readyState == 4) {  
                obj.data = xhr.responseText;  
             }  
          };  
          xr.send(null);  
       }  
    };  
    obj.readConfigXML();
    

    Siehe auch
    Konstruktoren, Prototypen und Instanzen
    Objektverfügbarkeit und this-Kontext

    Mathias