Ajax执行问题
来源:2-7 利用Ajax实现新闻列表
慕沐1471085
2019-05-05 18:35:43
请问老师就老师代码而言执行过程是什么样的,从哪个页面开始发生了什么
1回答
同学你好。这次课程的代码,核心就是news.html和NewsListServlet。目的是使用ajax来请求NewsListServlet,获取json串以后进行组装,展示在页面上。
//1. 创建XmlHttpRequest var xmlhttp; if(window.XMLHttpRequest){ xmlhttp = new XMLHttpRequest(); }else{ xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } //2. 发送Ajax请求 //true 代表异步执行 false代表同步执行 xmlhttp.open("GET" , "/ajax/news_list" , true); xmlhttp.send(); console.log("请求发送完成"); //3. 处理服务器响应 xmlhttp.onreadystatechange = function(){ if(xmlhttp.readyState == 4 && xmlhttp.status == 200){ var text = xmlhttp.responseText; console.log(text); var json = JSON.parse(text); console.log(json); 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 + " " + news.source +"</h2>" html = html + "<hr/>" } document.getElementById("container").innerHTML = html; } }
页面一加载便创建XmlHttpRequest对象xmlhttp。这之后,open设置了请求的细节,send向服务器发送了请求。服务器根据请求细节找到NewsListServlet,执行doGet中的代码。最后一句向response中书写了json字符串,状态改变,进入if(xmlhttp.readyState == 4 && xmlhttp.status == 200),用text获取responseText中的json字符串,将其转换为js的json对象,组装成html元素。将它放入container中。
如果解答了同学的疑问,望采纳~
祝学习愉快~
相似问题