js基础之ajax
必须搞懂的几个问题:
1.如何创建ajax对象?
2.如何连接服务器?
3.如何发送请求?
4.监控请求状态的事件是什么?分几个阶段?如何获取返回值?
答:onreadystatechange事件:一、readyState属性(请求状态:0——>未初始化;1——>载入,已经调用send()方法;2——>载入完成,已收到相应内容;3——>正在解析内容;4——>完成);二、status属性(请求结果);三、responseText属性(取得结果)
一、读取服务器端文件
function ajax(url, fnSucc, fnFaild){
	  //1.创建Ajax对象
	  var oAjax=null;
  if(window.XMLHttpRequest){
		    oAjax=new XMLHttpRequest();
	  }else{
		    oAjax=new ActiveXObject("Microsoft.XMLHTTP");
	  }	
	  //2.连接服务器
	  oAjax.open('GET', url, true);	
	  //3.发送请求
	  oAjax.send();	
	  //4.接收服务器的返回
	  oAjax.onreadystatechange=function (){
		    if(oAjax.readyState==4)	//完成
		    {
			      if(oAjax.status==200)	//成功
			      {
				        fnSucc(oAjax.responseText);
			      }else{
				        if(fnFaild)
					        fnFaild(oAjax.status);
			      }
		    }
	  };
}
   window.onload=function(){
	   var oBtn=document.getElementById('btn1');
oBtn.onclick=function(){
		     ajax('abc.txt?t='+Math.random(),function(str){
			     //alert(str);//'[1,2,3]'
			     //alert(eval(str)[0]);//1,eval可以解析任何js代码,比如把'[1,2,3]'解析成数组
			     var arr=eval(str);
			     alert(arr[0].rank);//把json文件解析成数组
		     });
	   }
   }
二、分页
var oUl = document.getElementById('ul1');
	   var oBtn=document.getElementById('btn1');
	   var aBtn=document.getElementsByClassName('a');
	   var i=0;
for(i=0;i<aBtn.length;i++){
		     aBtn[i].index=i;//设置索引
		     aBtn[i].onclick=function(){
			       ajax('p'+(this.index+1)+'.txt',function(str){
				         var aData=eval(str);
      oUl.innerHTML='';//循环前清空ul内的内容,否则会累加显示
				         for(i=0;i<aData.length;i++){
					           var oLi=document.createElement('li');
					           oLi.innerHTML='<b>'+aData[i].name+'</b><i>'+aData[i].rank+'</i>';
					           oUl.appendChild(oLi);
				         }
			       });
		     }
	   }
三、编写自己的ajax库
function ajax(url, fnSucc, fnFaild){
	  //1.创建Ajax对象
	  var oAjax=null;
  if(window.XMLHttpRequest){
		    oAjax=new XMLHttpRequest();
	  }else{
		    oAjax=new ActiveXObject("Microsoft.XMLHTTP");
	  }	
	  //2.连接服务器
	  oAjax.open('GET', url, true);	
	  //3.发送请求
	  oAjax.send();	
	  //4.接收服务器的返回
	  oAjax.onreadystatechange=function (){
		    if(oAjax.readyState==4)	//完成
		    {
			      if(oAjax.status==200)	//成功
			      {
				        fnSucc(oAjax.responseText);
			      }else{
				        if(fnFaild)
					        fnFaild(oAjax.status);
			      }
		    }
	  };
}
js基础之ajax的更多相关文章
- AJAX学习前奏----JS基础加强
		
 AJAX学习前奏----JS基础加强 知识概要: 1.js类&属性&方法的定义 2.静态属性与方法 3.构造方法 4.原型的使用 5.Object对象直接加属性和方法 6.JSO ...
 - Node.js基础与实战
		
Node.js基础与实战 Node.jsJS高级进阶 NODE原理与解析 REPL交互环境 模块与NPM Buffer缓存区 fs文件操作 Stream流 TCP&UDP 异步编程 HTTP& ...
 - js基础查漏补缺(更新)
		
js基础查漏补缺: 1. NaN != NaN: 复制数组可以用slice: 数组的sort.reverse等方法都会改变自身: Map是一组键值对的结构,Set是key的集合: Array.Map. ...
 - 前端面试题目汇总摘录(JS 基础篇)
		
JS 基础 JavaScript 的 typeof 返回那些数据类型 object number function boolean undefined string typeof null; // o ...
 - JS实现的ajax和同源策略
		
一.回顾jQuery实现的ajax 首先说一下ajax的优缺点 优点: AJAX使用Javascript技术向服务器发送异步请求: AJAX无须刷新整个页面: 因为服务器响应内容不再是整个页面,而是页 ...
 - Ext.js基础
		
第一章:Ext.js基础 好书推荐 Javascript设计模式 征服ajax web 2.0开发技术详解 简介 基础要求 了解HTML.CSS.熟练JS.JS的OOP.AJAX JSP/PHP/AS ...
 - 前端工程师面试问题归纳(一、问答类html/css/js基础)
		
一.参考资源 1.前端面试题及答案整理(一) 2.2017年前端面试题整理汇总100题 3.2018最新Web前端经典面试试题及答案 4.[javascript常见面试题]常见前端面试题及答案 5.W ...
 - 前端面试题目汇总摘录(JS 基础篇 —— 2018.11.02更新)
		
温故而知新,保持空杯心态 JS 基础 JavaScript 的 typeof 返回那些数据类型 object number function boolean undefined string type ...
 - js基础  js自执行函数、调用递归函数、圆括号运算符、函数声明的提升  js 布尔值  ASP.NET MVC中设置跨域
		
js基础 目录 javascript基础 ESMAScript数据类型 DOM JS常用方法 回到顶部 javascript基础 常说的js包括三个部分:dom(文档document).bom(浏览器 ...
 
随机推荐
- [转载] linux 速查表
			
原文: http://www.nixtutor.com/linux/all-the-best-linux-cheat-sheets/ 1. Linux Command Line Linux Refer ...
 - awt组件中文乱码Intellij解决
			
-Dfile.encoding=GB18030 -Dfile.encoding=GB18030
 - python 远程执行命令、上传、下载举例
			
使用python中的 paramiko 实现远程操作,需要安装 paramiko 模块. # vi pssh.py #!/usr/bin/python #coding=utf-8 ''' Create ...
 - shell远程执行命令
			
ssh主要参数说明 -l 指定登入用户 -p 设置端口号 -f 后台运行,并推荐加上 -n 参数 -n 将标准输入重定向到 /dev/null,防止读取标准输入 -N 不执行远程命令,只做端口转发 - ...
 - Yum常用命令及Yum中文手册
			
转自:http://blog.csdn.net/huangbiao86/article/details/6646471 Yum配置文件位于/etc/yum.conf和/etc/yum.repos.d/ ...
 - IE浏览器GET传参后台乱码
			
ie里面 get传递的字符串 为 gb2312 ,后台用的是utf-8类型 所以用 POST传递字符串到后端 否则进行js参数转码 encodeURI(""); 后端解码
 - 提高php开发效率的9大代码片段
			
在网站开发中,我们都期望能高效快速的进行程序开发,如果有能直接使用的代码片段,提高开发效率,那将是极好的.php开发福利来了,今天小编就将为大家分享9大超实用的.可节省大量开发时间的php代码片段. ...
 - 能在CAD2004以下版本里面打开2007以上版本文件的外挂
			
下载地址:http://yunpan.cn/cjrxMKNubXQ5E 访问密码 1974 老何CAD工具安装办法:[推荐]先安装老何工具箱,然后用[扩展添加老何cad下拉菜单.bat]就完成老何下 ...
 - Windows下DLL查找顺序
			
目录 第1章说明 2 1.1 查找顺序 2 1.1.1 检查DllCharacteristics字段 3 1.1.2 读取manifset资源 3 1.1.3 读取manifs ...
 - astyle 使用说明
			
欢迎关注我的社交账号: 博客园地址: http://www.cnblogs.com/jiangxinnju GitHub地址: https://github.com/jiangxincode 知乎地址 ...