ajax
Asynchronous Javascript And XML --- 异步 JavaScript 和 XML
通过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新 , 这样在无需重新加载整个网页就可以更新部分网页
异步请求与同步请求
最大的区别:同步需要等待,而异步无需等待。
同步请求:
提交请求->等待服务器处理->处理完毕返回 这个期间客户端浏览器不能干
别的事。(普通B/S模式)
异步请求:
请求通过事件触发->服务器处理(这时浏览器仍然可以作其他事情)->处理完毕。例如AJAX技术就是异步请求。
注意--->
javascript语言是一门“
单线程
”的语言,不像java语言,类继承Thread再来个thread.start就可以开辟一个线程.
JavaScript的异步不是通过多线程实现的, 如Ajax将事件委托给XmlHttpRequest执行实现异步
多线程与异步不是对等的关系,多线程是实现异步的一种手段
多线程就像你开了很多Chrome的选项卡. 它们在一个浏览器中. 个人认为并行也包括多线程啦. 但并行可以想象成你开了好多个Chrome浏览器, 里面各自有各自的选项卡.
ajax用法
使用JavaScript原生写法较为麻烦,推荐使用JQuery,必要条件下百度-_-
get方式,url地址拼接
function fn1() {
$.get("http://localhost:8080/DAY24_Ajax/demo1?hero=aobama",function(result){
$("#span1").html(result)
})
}
Post方式,中间多一个json格式的请求参数
function fn2() {
$.post("http://localhost:8080/DAY24_Ajax/demo1",{"hero":"ez"},function(result){
$("#span4").text(result)
})
}
最重要的获取Servlet响应的json并解析
$(function(){
$.getJSON("${pageContext.request.contextPath}/order",{methodSrc:"ajaxOrder"},function(json){ //将json转化为jQuery对象,遍历里面的list集合 index是角标,element是遍历出来的元素
$(json.list).each(function(index,element){
$("#cid").append("<option value='"+element.cid+"'>"+element.cname+"</option>")
})
})
})