《Ajax》

《Ajax》

<大纲>

Ajax介绍

Ajax使用流程

利用Ajax实现Java与JavaScript通信

同步与异步的区别

jQuery对Ajax的支持

从Ajax方法衍生的简化方法

1.Ajax介绍

  • 全名:Asynchronous JavaScript And XML(异步的JavaScript和XML)
  • Ajax可以在不刷新页面的前提下,进行页面局部更新
  • Ajax不是新的技术,Ajax并不是W3C的标准

2.Ajax使用流程

  1. 创建XmlHttpRequest对象

    	var xmlhttp;
        if(window.XMLHttpRequest){
            xmlhttp = new XMLHttpRequest();
        }else{
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }    
    
  2. 发送Ajax请求

    	xmlhttp.open("GET" , "/ajax/content" , true);
    	xmlhttp.send();
    
  3. 处理服务器响应

    
	xmlhttp.onreadystatechange = function()
    {
    	if(xmlhttp.readyState == 4 && xmlhttp.status == 200)
            {
            var t = xmlhttp.responseText;
            alert(t);
            document.getElementById("divContent").innerHTML = t;
            }
    }

3.利用Ajax实现Java与JavaScript通信

  • Java(Servlet)代码

    		List list = new ArrayList();
    		if(type != null && type.equals("pypl")) {
    			list.add(new News("PYPL:2018年5月份全球编程语言排行榜" , "2018-5-1" , "PYPL" , "..."));
    			list.add(new News("PYPL:2018年6月份全球编程语言排行榜" , "2018-6-1" , "PYPL" , "..."));
    			list.add(new News("PYPL:2018年7月份全球编程语言排行榜" , "2018-7-1" , "PYPL" , "..."));
    			list.add(new News("PYPL:2018年8月份全球编程语言排行榜" , "2018-8-1" , "PYPL" , "..."));
    			
    		}
    		String json = JSON.toJSONString(list);
    		response.setContentType("text/html;charset=UTF-8");
    		response.getWriter().println(json);
    
  • javascript代码

    var xmlhttp;
    	if(window.XMLHttpRequest){
    		xmlhttp = new XMLHttpRequest();
    	}else{
    		xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    	}
    	xmlhttp.open("GET" , "/ajax/news_list" , true);
    	xmlhttp.send();
    	console.log("请求发送完成");
    	 xmlhttp.onreadystatechange = function(){
    		if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
    			var text = xmlhttp.responseText;
    			console.log(text);
    			var json = JSON.parse(text);
    			var html = "";
    			for(var i = 0 ; i < json.length ; i++){
    				var news = json[i];
    				html = html + "<h1>" + news.title + "</h1>";
    				html = html + "<h2>" + news.date + "&nbsp;" + news.source +"</h2>"
    				html = html + "<hr/>"
    			}
    			document.getElementById("container").innerHTML = html;
    		}
    	} 
    

4.同步与异步的区别

  • 同步:服务器给Ajax请求以响应才继续后面的代码

    xmlhttp.open("GET" , "/ajax/news_list" , false);
    
  • 异步:服务器处理请求给出响应 与 后面的代码 同时进行

    xmlhttp.open("GET" , "/ajax/news_list" , true);
    

    5.6明天再写

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值