交互
form 提交:
1、action: 提交的地址
2、name-value 对的形式
网址:https://www.baidu.com/?uname=qqqqqq&upass=wwww
https:// 协议
www.baidu.com 域名
? 后面就是数据,或者叫参数
uname=qqqqqq 一条数据,符合name-value对的形式
& 多个参数间的分隔
3、method: get post
post: 其它网站不允许随便通过post来提交数据
容量:非常大(2G)
安全:相对安全
post缺点:
1)刷新页面
2)不能从服务器获取数据
get: url提交 或 问号提交,容量比较小,通常是几十k左右,不安全(把数据都暴露到地址栏)
get优点,应用场景 :
分享,收藏
缓存:cache
针对同一个地址(URL),浏览器只读取一次。
对用户来说——好
对程序员来说——基本上就是灾难
如果想不用缓存:就把URL地址变成不一样的就行了(在url上加一些没有用的参数)
***Math.random()
ajax:
Asynchronous Javascript And XML
异步的javascript 和 xml
就是异步的获取数据或者提交数据。
同步,在程序中,一件事情做完再做下一件
异步,在程序中,做一件事情的同时做另外的事情
jquery的ajax:
1、请求一个简单的文件
$.ajax('1.txt');
2、读取/利用 返回的内容
$.ajax({
url:'ajaxFile/1.txt',
success:function(result){ //请求成功之后的回调函数
//result —— 就是本次请求返回的结果
}
});
3、失败的回调
$.ajax({
url:
success:function(){},
error:function(){
alert('出错了');
}
});
4、看的并不是文件的扩展名,而是和文件的内容有关(碰到一个特殊:.js文件)
通常情况下,约定,数据文件的扩展名: 使用 .json .data
5、不管看到的结果是什么,都是字符串类型
序列化:
把对象变成字符串,ES5提供的方法: JSON.stringify(字符串);
JSON.stringify('{"a":1,"b":2}');
反序列化:
把字符串变成对象
JSON.parse({"a":1,"b":2});
6、数据类型
$.ajax({
dataType:
});
7、
dataType:'json',
——并不是咱们传统意义上理解的纯JSON格式,可以兼容JSON+数组的写法
8、缓存
解决办法:
1)
在URL地址上加一个随机数
url + 'r='+Math.random();
随机数: 随机因子
2)利用jquery的一个选项参数
cache:false
$.ajax({
url: //请求的地址
dataType:'json' // 默认 字符串
cache: false //默认true
success:function(){} //成功后的回调函数
error:function(){} //失败后的回调函数
});
总结:
1)服务器环境
2)对于请求的结果,默认情况下不管看到的是什么,其实都是字符串
如果指定了dataType,指定的是什么就是什么
3)缓存
缓存:对于一个相同的url,浏览器只读一次
解决:
a)在请求的url上,加一个随机因子,使得所有的url都不相同了
b)$.ajax 的选项: cache:false —— 不允许缓存
4)编码
统一编码,一般UTF-8
5)请求的文件名,和扩展名没有关系,主要看文件内容
数据文件的扩展名: json 和 data
数组随机排序:
arr.sort(function(){
return 0.5 - Math.random();
});
ajax做交互
接口:
前台和后台做交互时使用的一个地址。
现在: 取数据—— badu.data a.txt
实际: 取数据—— http://localhost/1.php?a=1
接口文档:描述接口信息的一个文档。
至少应该包含 :
1)接口说明 (接口的功能)
2)接口地址
3)接口中的参数
4)返回值
user.php?act=xxx&user=用户名&pass=密码
模拟:
用户注册: 用户名:amdin 密码:1234
$.ajax({
url:'user.php?act=add&user=admin&pass=1234'
});
接口文档 —— > 接口协议
“用户注册协议1.2.docx”
用户的注册、登录:
* 做交互时,请求的路径中不允许有中文
在做交互时,如果涉及到中文数据,那么一定要进行编码:
编码: encodeURIComponent(要编码的字符串);
解码: decodeURIComponent(要解码的字符串);
网友评论