AJAX学习笔记1发送Get请求

传统请求有哪些方式,及缺点

传统请求有哪些?

1.直接在浏览器地址栏上输入URL.

2.点击超连接.

超链接请求  ---->相对路径

超链接请求  ---->绝对路径

3.提交form表单

4.使用JS代码

window.open("url")

document.localtion.href=""

window.localtion.href=""

新建项目举例

AJAX学习笔记1发送Get请求_第1张图片

next----next

AJAX学习笔记1发送Get请求_第2张图片

设置字符集

AJAX学习笔记1发送Get请求_第3张图片

添加框架支持

AJAX学习笔记1发送Get请求_第4张图片AJAX学习笔记1发送Get请求_第5张图片

关于为什么项目启动会自动访问index的说明

Servlet中WebApp欢迎页面配置_biubiubiu0706的博客-CSDN博客

 引入依赖

AJAX学习笔记1发送Get请求_第6张图片

index.html

AJAX学习笔记1发送Get请求_第7张图片

 AJAX学习笔记1发送Get请求_第8张图片

配置Tomcat

AJAX学习笔记1发送Get请求_第9张图片AJAX学习笔记1发送Get请求_第10张图片AJAX学习笔记1发送Get请求_第11张图片AJAX学习笔记1发送Get请求_第12张图片AJAX学习笔记1发送Get请求_第13张图片

传统请求的缺点,每次请求都会将整个页面刷新

AJAX可以做到局部刷新

AJAX通过浏览器上一个对象XMLHttpRequest  可以理解为一个线程,

通过XMLHttpRequest(浏览器内置对象)向服务器发送请求做到局部更新

AJAX可以在浏览器当中发送异步请求.请求A和请求B是异步的.谁也不需要等谁.类似多线程并发

响应回来的数据:普通文本,XML字符串,JSON数据

学习AJAX需要看得懂下面JS代码

AJAX学习笔记1发送Get请求_第14张图片

AJAX学习笔记1发送Get请求_第15张图片

发送第一个AJAX请求

AJAX   GET请求

AJAX学习笔记1发送Get请求_第16张图片AJAX学习笔记1发送Get请求_第17张图片AJAX学习笔记1发送Get请求_第18张图片AJAX学习笔记1发送Get请求_第19张图片

添加依赖

AJAX学习笔记1发送Get请求_第20张图片

配置Tomcat

AJAX学习笔记1发送Get请求_第21张图片AJAX学习笔记1发送Get请求_第22张图片AJAX学习笔记1发送Get请求_第23张图片AJAX学习笔记1发送Get请求_第24张图片测试

AJAX学习笔记1发送Get请求_第25张图片

因为后端没有写该接口

AJAX学习笔记1发送Get请求_第26张图片

AJAX学习笔记1发送Get请求_第27张图片

最核心部分就是框中的回调函数中的

AJAX学习笔记1发送Get请求_第28张图片

AJAX学习笔记1发送Get请求_第29张图片

再次测试

AJAX学习笔记1发送Get请求_第30张图片

编写后端代码

AJAX学习笔记1发送Get请求_第31张图片

测试

AJAX学习笔记1发送Get请求_第32张图片

后端出错

AJAX学习笔记1发送Get请求_第33张图片测试

AJAX学习笔记1发送Get请求_第34张图片

后端向浏览器响应文本数据

AJAX学习笔记1发送Get请求_第35张图片

其实该用responseText

AJAX学习笔记1发送Get请求_第36张图片

测试   完美

AJAX学习笔记1发送Get请求_第37张图片

其实该用responseText

AJAX学习笔记1发送Get请求_第38张图片

测试

AJAX学习笔记1发送Get请求_第39张图片

给点颜色看看

AJAX学习笔记1发送Get请求_第40张图片

其实该用responseTextAJAX学习笔记1发送Get请求_第41张图片

测试

AJAX学习笔记1发送Get请求_第42张图片

再做个练习  熟练发送AJAX   GET请求

AJAX学习笔记1发送Get请求_第43张图片

 AJAX学习笔记1发送Get请求_第44张图片

AJAX学习笔记1发送Get请求_第45张图片

下面来改进一下AJAX请求的写法    下面这样也可以  不知道为什么

理论来说this已经没效果了.但是测试也可以

AJAX学习笔记1发送Get请求_第46张图片

正确的写法应该是如下   ajax3这种方式只是为了扩展下思路

AJAX学习笔记1发送Get请求_第47张图片

AJAX GET请求   提交数据给服务器    以ajax2为例

AJAX学习笔记1发送Get请求_第48张图片

get请求提交数据是在请求行上

格式比如:url?name=xxx&password=xxx  是HTTP协议中规定的

AJAX学习笔记1发送Get请求_第49张图片AJAX学习笔记1发送Get请求_第50张图片

测试

AJAX学习笔记1发送Get请求_第51张图片

注意请求地址并没有变化,参数也没有再url上

AJAX学习笔记1发送Get请求_第52张图片

看下后端有没有接收到

AJAX学习笔记1发送Get请求_第53张图片

但是现在 参数在程序里是写死的   改一下代码

AJAX学习笔记1发送Get请求_第54张图片

AJAX学习笔记1发送Get请求_第55张图片

测试  输出到前端页面没有乱码

  AJAX学习笔记1发送Get请求_第56张图片

控制台乱码,应该是

改成了GBK试试  和自己计算机字符集原因

AJAX学习笔记1发送Get请求_第57张图片

AJAX学习笔记1发送Get请求_第58张图片

  • 对于低版本的IE浏览器来说,AJAX的get请求可能会走缓存。存在缓存问题。对于现代的浏览器来说,大部分浏览器都已经不存在AJAX get缓存问题了。

  • 什么是AJAX GET请求缓存问题呢?

    • 在HTTP协议中是这样规定get请求的:get请求会被缓存起来。

    • 发送AJAX GET请求时,在同一个浏览器上,前后发送的AJAX请求路径一样的话,对于低版本的IE来说,第二次的AJAX GET请求会走缓存,不走服务器。

  • POST请求在HTTP协议中规定的是:POST请求不会被浏览器缓存。

  • GET请求缓存的优缺点:

    • 优点:直接从浏览器缓存中获取资源,不需要从服务器上重新加载资源,速度较快,用户体验好。

    • 缺点:无法实时获取最新的服务器资源。

  • 浏览器什么时候会走缓存?

    • 第一:是一个GET请求

    • 第二:请求路径已经被浏览器缓存过了。第二次发送请求的时候,这个路径没有变化,会走浏览器缓存。

  • 如果是低版本的IE浏览器,怎么解决AJAX GET请求的缓存问题呢?

    • 可以在请求路径url后面添加一个时间戳,这个时间戳是随时变化的。所以每一次发送的请求路径都是不一样的,这样就不会走浏览器的缓存问题了。

    • 可以采用时间戳:"url?t=" + new Date().getTime()

    • 或者可以通过随机数:"url?t=" + Math.random()

    • 也可以随机数+时间戳....

如果真遇到了  解决方式

或者随机数加时间戳     随机数:Math.random()

你可能感兴趣的:(ajax,学习,笔记)