bla: Gehe ich richtig mit Ajax um?

Schaut mal, so sieht bei mir ein kleines Javascript aus:

<a href='javascript:;' onclick='return klick();'>Klick</a>

  
  
/*  
* Request erzeugen  
*/  
function getReq(){  
var req = null;  
try{  
	req = new XMLHttpRequest();  
} catch (ms){  
	try{  
		req = new ActiveXObject("Msxml2.XMLHTTP");  
	} catch (nonms){  
		try{  
			req = new ActiveXObject("Microsoft.XMLHTTP");  
		} catch (failed){  
			req = null;  
		}  
	}  
}  
if (req==null) alert("Error creating request object!");  
return req;  
}  
  
function newSteckEntry(e){  
	if(e==""||!e){alert(e);return false;}  
	// Request holen  
	var req = getReq();  
	req.open("POST","/NameEiner/Funktion",true);  
	req.onreadystatechange = function(){  
		switch(req.readyState) {  
			case 4:  
				if(req.status!=200) {  
					alert("Es ist ein Fehler aufgetreten!");	  
				}else{  
					window.location.reload();  
				}  
			break;  
			default:  
				return false;  
			break;  
		}  
	};  
	req.setRequestHeader("Content-Type","application/x-www-form-urlencoded");  
	req.send(null);  
}

Ist das okay so oder könnte ich irgendwas besser machen / vereinfachen / "sauberer" machen?

Gruß, blabla

  1. Hallo,

    Ist das okay so oder könnte ich irgendwas besser machen / vereinfachen / "sauberer" machen?

    Mal abgesehen von Axax:

    if(e==""||!e) [...]

    Da würde einfach if(!e) ausreichen.

    if (req==null) [...]

    Es macht im Allgemeinen wenig Sinn, gegen "", 0, undefined, null, false oder true mit == zu vergleichen, weil z.B. auch ' \t\r\n' == 0 gilt. Solche Vergleiche sollten ohne Typumwandlung, d.h. mit === gemacht werden, oder aber, wenn man die automatische Typumwandlung wirklich will, ganz ohne Vergleichsoperatoren, also mit if(bla) bzw. if(!bla).

    Gruß, Don P

    --
    sh:( fo:) ch:? rl:( br:] n4:~ ie:% mo:? va:{ js:) de:/ zu:] fl:( ss:| ls:&
  2. function newSteckEntry(e){

    ich nehm an, du meinst einen "stAck" ;)

    1. Hi,

      function newSteckEntry(e){

      ich nehm an, du meinst einen "stAck" ;)

      ... oder mich ;)

      mfG,
      steckl