Gehe ich richtig mit Ajax um?
bla
- javascript
0 Don P0 dr. english0 steckl
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
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
function newSteckEntry(e){
ich nehm an, du meinst einen "stAck" ;)
Hi,
function newSteckEntry(e){
ich nehm an, du meinst einen "stAck" ;)
... oder mich ;)
mfG,
steckl