template

Index :: Javascript :: Module :: Ajax-Klasse (ajax.js)

Dieses Modul kapselt alle relevanten Methoden (wie Initialisierung, Senden und Empfangen) und Eigenschaften des HTTP-Request-Objekts. Beispiele zur Verwendung siehe unter AJAX.
Ajax = function (sUrl, fuHandler) {
  var MyRequest = null;
  var MyUrl = sUrl;
  var MyHandler = fuHandler;
//-- public ----------
  this.Valid = function () { return (MyRequest != null); }
  this.Url = function (sUrl) { MyUrl = sUrl; }
  this.Handler = function (fuHandler) { MyHandler = fuHandler; }
  this.Get = function (sParam) {
    if (MyRequest == null) return;
    MyRequest.abort();
    MyRequest.onreadystatechange = Listen;
    MyRequest.open("GET", MyUrl+"?"+sParam, true);
    MyRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    MyRequest.send(null);
  }
  this.Post = function (sParam) {
    if (MyRequest == null) return;
    MyRequest.abort();
    MyRequest.onreadystatechange = Listen;
    MyRequest.open("POST", MyUrl, true);
    MyRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    MyRequest.send(sParam);
  }
  this.Abort = function () {
    if (MyRequest == null) return;
    MyRequest.abort();
    MyRequest.onreadystatechange = Listen;
  }
//-- private ----------
  function Create() { // HttpRequest-Objekt erzeugen
    if (MyRequest != null) return;
    try { MyRequest = new XMLHttpRequest(); } // z.B. Mozilla
    catch (e) {
      try { MyRequest = new ActiveXObject("Msxml2.XMLHTTP"); } // IE
      catch (e) {
        try { MyRequest = new ActiveXObject("Microsoft.XMLHTTP"); } // IE
        catch (e) {
          try { MyRequest = window.createRequest(); } // diverse
          catch (e) { MyRequest = null; }
        }
      }
    }
  }
  function Listen() { // Callbackfunktion für Server
    switch (MyRequest.readyState) {
      case 4: if (MyRequest.status==200) MyHandler(MyRequest.responseText);
              break;
    }    
  }
  Create(); // Initialisierung: HttpRequest-Objekt erzeugen
}

Index :: Javascript


template