[Js]Ajax
一、什么是Ajax
不刷新的情况下读取数据或提交数据
(最早出现ajax:谷歌地图,拖动一下出现一片新的视野)
应用:用户注册、在线聊天、微博
特性:只能从服务器上去读取数据(所以我们需要配置自己的服务器程序AMP)
二、使用Ajax
1.基础:请求并显示静态TXT文件
btn.onclick=function(){
ajax('abc.txt',function(str){
alert(str);
});
}
①Ajax里面文件的编码要和页面的编码一致
②缓存、阻止缓存(好处大于缺点,所以不能什么时候都清缓存)
缓存能帮助我们加速网络访问,所谓缓存,就是服务器上这个文件,它只读一次,第二次就从你的硬盘里、缓存里直接去拿,而不是真的通过网络来请求
有时候我们需要阻止缓存(比如服务器上东西变化了,但客户端请求来的还是原来的东西),办法如下,加时间戳:
ajax('abc.txt?t='+new Date().getTime(),function(str){}); //new Date().getTime()为现在的毫秒数,用户绝对不可能在1毫秒内点两次,所以每次请求的t都不一样
2.动态数据:请求Js(或json)文件
Ajax从服务器上读取的所有东西都是以文本的形式(字符串)存在的,如何转换?
eval()计算字符串里的值
ajax('abc.txt',function(str){
var arr=eval(str);
alert(arr);
});
例子:分页
<ul id="list">
</ul>
<a href="#"></a>
<a href="#"></a>
<a href="#"></a>
window.onload=function(){
var oUl=getElementById("list");
var aBtn=getElementsByTagName("a");
var i;
for(i=0;i<aBtn.length;i++){
aBtn[i].index=i;
aBtn[i].onclick=function(){
ajax('page'+(this.index+1)+'.txt',function(str){
var aData=eval(str);
oUl.innerHTML='';
for(i=0;i<aData.length:i++){
var oLi=document.createElement("li");
oLi.innerHTML='<strong>'+aData[i].user+'</strong><i>'+aData[i].pass+'</i>';
oUl.appendChild(oLi);
}
});
};
}
};
三、Ajax原理
HTTP请求方法
1.GET--用于获取数据(如浏览贴子) 把数据放在URL(网址)里面来提交 安全性低、容量低、便于分享(将网址发给别人)
2.POST--用于上传数据(如用户注册) 把数据放在不是URL的地方 安全性一般、容量几乎无限、不便于分享
四、封装一个自己的Ajax函数
1.创建Ajax
2.连接服务器
3.发送请求
4.接收返回
function ajax(url,fnSucc,fnFaild){
//1.创建
var oAjax=null;
if(window.XMLHttpRequest){ //对ie6来说,直接用XMLHttpRequest是不存在的会出错
oAjax=new XMLHttpRequest(); //ie6以上
}else{
oAjax=new ActiveXObject("Microsoft.XMLHTTP"); //ie6
}
//2.连接服务器,open(方法,url,是否异步)
oAjax.open('GET',url,true);
//3.发送请求
oAjax.send();
//4.接收返回 OnReadyStateChange
oAjax.onreadystatechange=function(){ //onreadystatechange事件
if(oAjax.readyState==4){ //readyState属性:请求状态 4是完成(完成不代表成功)
if(oAjax.status==200){ //status属性:请求结果 200代表成功
fnSucc(oAjax.responseText); //responseText属性:服务器发回给我们的内容
}
else{
if(fnFaild){
fnFaild();
}
}
}
};
};
[Js]Ajax的更多相关文章
- js ajax post提交 ie和火狐、谷歌提交的编码不一致,导致中文乱码
今天遇到一个问题找了很久发现: 使用js ajax post提交 ie和火狐.谷歌提交的编码不一致,导致中文乱码 //http://www.cnblogs.com/QGC88 $.ajax({ url ...
- JavaScript学习总结【12】、JS AJAX应用
1.AJAX 简介 AJAX(音译为:阿贾克斯) = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML),是指一种创建交互式网页应用的网页开发技 ...
- 简单的前端js+ajax 购物车框架(入门篇)
其实,一直想把自己写的一些js给总结下,也许是能力有限不能把它完美结合起来.只能自己默默的看着哪些代码,无能为力. 今天在公司实在没有事做,突然就想到写下商城的购物车的前端框架,当然我这里只有购物车的 ...
- MVC3.0+knockout.js+Ajax 实现简单的增删改查
MVC3.0+knockout.js+Ajax 实现简单的增删改查 自从到北京入职以来就再也没有接触MVC,很多都已经淡忘了,最近一直在看knockout.js 和webAPI,本来打算采用MVC+k ...
- js+ajax编码三级联动
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title> ...
- 注册页面手机验证码无跳转接收[html+js+ajax+php]
[学习笔记] 来源:注册时需要使用短信验证码,但是注册的时候,点击接收验证码时,会产生跳转(尼玛,这不是我想要的啊!o(╥﹏╥)o) 查询资料和看书之后,知道使用js+ajax可以实现,就从网上找了一 ...
- js ajax请求传token
js ajax请求传token 方法一: headers: { Authorization: "BasicAuth " + token } 方法二: beforeSend: fu ...
- js ajax设置和获取自定义header信息的方法总结
目录 1.js ajax 设置自定义header 1.1 方法一: 1.2 方法二: 2.js ajax 获取请求返回的response的header信息 3.js ajax 跨域请求的情况下获取自定 ...
- 原生js ajax与jquery ajax的区别
原生js ajax的调用: ajax({ type : "get", url : "02_ajax_get.txt", data : { "userN ...
- JS Ajax跨域访问
js ajax跨域访问报"No 'Access-Control-Allow-Origin' header is present on the requested resource 如果请求的 ...
随机推荐
- Redis基础知识之————php-Redis 常用命令专题
Keys del,delete - 删除键 dump - 返回存储在指定键值的序列化版本. exists - 确定键是否存在 expire,setTimeout,pexpire - 设置键的生存时间( ...
- hibernate(三)检索属性配置
检索即对象的获取:获取的时机和和方式:减少没必要的内存占用,尽量少的sql语句减少多余数据库的访问 一:类级别的检索:load() 和属性<class lazy=true> .无论 < ...
- sql语句语法大全
一.基础 1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份sql server --- ...
- Linux计划任务入门详解
Linux操作系统定时任务系统 Cron 入门 cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业.由于Cron 是Linux的内置服务,但它不自动起来,可以用以下的方法启动 ...
- 任务调度JOB
1.1 描述 定时执行数据库中的PL/SQL块,如存储过程.可以减化前端编程. 1.2 简单示例 本示例运行环境:oracle10g + pl/sql +xp. 使用存储过程每 ...
- 转 java 类 单例
转 单例概念: java中单例模式是一种常见的设计模式,单例模式分三种:懒汉式单例.饿汉式单例.登记式单例三种. 单例模式有一下特点: 1.单例类只能有一个实例. 2.单例类必须自己自己创建自己的唯一 ...
- Java内部接口的调用方式
package com.hs.review; public class Person { public static void main(String[] args) { Person p1 = ne ...
- 第三章 Python容器:列表、元组、字典与集合
数据结构的分类依据?基本的"数组"在python中是列表, 数据结构的作用?容器,盛放数据,是由原子组成的分子.可以将一群数据进行整合.拆分.重排. 3.2 列表 列表是啥?顺 ...
- 显示win7桌面网络.reg
显示win7桌面网络.reg Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\C ...
- 联想G480笔记本安装系统
联想G480笔记本安装系统 联想G480笔记本,配置i5双核四线程处理器,4G内存,500G硬盘,USB3.0接口,NVIDIA GeForce GT 610M+Intel HD Graphics 3 ...