JavaScript Ajax

web基础知识

1、web服务器

在这里插入图片描述

在Web服务器中,请求资源又分为静态资源动态资源

静态资源的特点:只要服务器没有修改这些文件,客户端每次请求到的都是同样的内容。

动态资源的特点:内容可以动态发生变化,每次请求都需要计算处理。

服务器端web开发常用技术有:PHP、ASP.NET、Java、node等。

什么是服务器?

其实就是一台高性能电脑。

2、HTTP协议

HTTP(HyperText Transfer Protocol)全称为超文本传输协议。于规范客户端和服务器之间以指定的格式进行数据交互。

HTTP是一种基于“请求”和“响应”的协议。

当客户端与服务器建立连接后:

  • 客户端(浏览器)向服务器端发送一个请求,这个请求称为HTTP请求。
  • 服务器接收到请求后做出响应,称为HTTP响应。

web服务器搭建

前后端交互(表单交互
在这里插入图片描述

前后端交互(URL参数交互

在这里插入图片描述

Ajax

在这里插入图片描述

数据交互格式

1、XML

XML:eXtensible Markup Language,可扩展标记语言。

与HTML都是标签语言,XML主要用于描述和存储数据,可以自定义标签。

<?xml version="1.0" encoding="utf-8" ?>//xml声明
  <booklist>//开始 标签
    <book>
  <name>三国演义</name>
  <author>罗贯中</author>
  </book>
  <book>
  <name>水浒传</name>
  <author>施耐庵</author>
  </book>
  </booklist>//结束标签

当服务器返回的是一个XML格式的数据时,利用Ajax对象的responseXML属性即可对XML数据进行处理。

2、Json
JSON:是一种轻量级的数据交换格式。

特点:采用完全独立于语言的文本格式,这使得JSON更易于程序的解析和处理。

与XML对比:使用JSON对象访问属性的方式获取数据更加方便,在JavaScript中可以轻松地在JSON字符串与对象之间转换。

JavaScript Ajax

1、基本概念

AJAX = Asynchronous JavaScript And XML.(异步的 JavaScript 和 XML)

2、优点

  • 局部刷新
  • 异步

理解
在JavaScript中,同步代码会按照编写顺序顺序执行,而异步代码(如网络请求、定时器等)会在后台执行,不会阻塞其他代码。当异步操作完成时,它会通知JavaScript引擎,然后JavaScript引擎会执行回调函数。

  • 同步:一次只能干一件事
  • 异步:一次能干多件事

3、Ajax使用和注意问题

使用用法
ajax(url,成功回调函数,失败时回调函数)

回调函数:只管定义,什么时候调用不要管。
访问形式:http://localhost/xxxxxxx.html

Ajax需要注意的问题

  • (1)缓存:同一地址只请求一次

方法 ajax('a.txt?t='+Math.random(),function(){})

  • (2)从服务器返回的都是字符串

12+5=17 (number)
{“a”:12}
解决方法json.prase()

本身存在兼容性问题(IE8)
解决方法

<meta http-equiv="X-UA-Compatible" content="ie=edge">

比如:JSON.parse(data)+5;

  • (3)乱码

txt文件使用utf-8
统一编码:UTF-8

  • (4)ajax请求服务器文件与后缀名无关。

Ajax与服务器的交互过程

(1)创建一个Ajax对象

var  oAjax;
if(window.XMLHttpRequest){                
 oAjax=new  XMLHttpRequest();            
}else{                
  oAjax = new  XMLHttpRequest('Microsoft.XMLHTTP');           
 }   

(2)创建一个连接

两种方式:get、post

oAjax.open('GET','a.txt',true)

(3)发送请求

oAjax.send()

(4)接收

oAjax.onreadystatechange=function(){                
//判断通讯状态                
 if(oAjax.readyState==4){                    
//http状态                    
  if(oAjax.status==200||oAjax.status==304){                        //服务器返回文本形式                          
    alert(oAjax.responseText);                    
  }                
 }                          
};

判断通讯状态

  • 0 初始化 XMLHttpRequest对象初始
  • 1 载入完成,开始发送请求
  • 2 发生请求完成
  • 3 开始解析、读取服务器的响应
  • 4 完成,对象读取服务器相应结束

http状码

  • 100(消息响应)

  • 2xx(200)_成功

  • 3xx重定义

    304 not motified 缓存

  • 4xx客户端错误

    404 no found 未找到文件

  • 5xx服务器端错误

    500 服务器内部错误 很可能为后台代码写错
    503 服务器问题

用Ajax使用登录注册

Ajax,js从服务器获取数据

表单三要素:

  • (1)action(提交地址)

    www.baidu.com(本都)

  • (2)http:(网路)

    method(提交方法:默认为get、post)
    get(明文、不安全、url可见 32k 有缓存)
    post(密文、相对安全、 url不可见、1G、没有缓存)

  • (3)name(提交字段名)

    form提交
    刷新整个页面,用户体验不好,浪费带宽
    不能从服务器拿点数据回来

    接口API(其实就是一个地址 进行数据操作)
    method:get
    参数
    返回值

跨域问题

同源策略,不允许跨域访问数据。

不同源
a.com 与b.com
a.c.com 与 a.com

jsonp跨域方式

script标签可以跨域

<script src="http></script>

远端服务器
函数调用

show(1)

本地定义

function show(data){
alert(data)

好处:

  1. script兼容性
  2. 不需要服务器支持

缺点:

  • 只能使用get方式
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值