56. Asynchronous Javascript And XML后面为什么还加一个xml,根本就沾不上边,只是xml比较流行,一般的不都沾一下流行的边吗,你取名,取什么明星的名字。这不是什么新技术,99年就有了,最先应用的就是Google了,感觉不错,后来就流行了
<input id="userId" type="text" onblur="validate(this)" /> 当前的这个DOM对象,传,传到哪啊,传到field,现在这个field就是 userId
function validate(field) {
65. //表示当前浏览器不是ie,如ns,firefox
if(window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
} else if (window.ActiveXObject) { //因为ie嵌入的是ActiveX对象。
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlHttp.onreadystatechange=callback;这个属性要赋值一个地址。 后面不能加括号,加括号就表示调用了。
xmlHttp.onreadystatechange=callback;这个属性要赋值一个地址。 后面不能加括号,加括号就表示调用了。
在文本框后面的提示信息,用span,不用div,你用div的话,他会自动换行。document.getElementById("userIdSpan").innerHTML = "<font color='red'>" +xmlHttp.responseText + "</font>";
.innerHTML //这个以前也不知道,就是说span上面还可以放html标签。不是span独有。
else {
//为空的话把span清了。
document.getElementById("userIdSpan").innerHTML = "";
}
他把那个url改名了,var url = "user_validate22222.jsp?userId=" 这样去访问,也能看到效果即也能验证我输入的东西正不正确。,为什么 ie缓存了。
你有的时候上一些网站,特别快,其实还没有进去,读取的是缓存里的东西。缓存里面的东西应该清除,不然的话会出现一些不可预知的错误。清除方式,1,使用java代码的方式。 //response.setContentType("text/xml");
//response.setHeader("Cache-Control", "no-store"); //HTTP1.1
//response.setHeader("Pragma", "no-cache"); //HTTP1.0
//response.setDateHeader("Expires", 0);
这是修改http协议头
2,让每次访问的Url不一样,那么 他就不会使用上一次的东西。怎么让每次url不一样呢?加一个时间戳,他是使用new Date().getTime()得到时间的毫秒值,这样不怎么保险,如果并发访问量大的话,会出现问题。
74. 如果你这个页面有大于1个的文本框,也就是多个文本框都要用ajax验证,那么每一个xmlHttpRequest都要分别创建,不然会有线程安全问题。因为你第一个请求,他把有一些状态改了,你第二个请求又会把一些状态改了。
75. ajax就是多了一个XMLHttpRequest对象,其他的都是js编程。他说什么ajax投入大一点的精力是值得的,css知道一下就行了。
76. 现在使用匿名的函数的写法。以后在一些框架中使用的比较多。把callback改一下,直接用function(){} 直接这样写