ajax
异步JavaScript和XML
作用:
显示新的HTML内容而不用在整个页面(局部刷新技术)
提交一个表单并且立即显示结果
登录而不用跳转到新的页面
遍历数据库信息加载更多而不刷新页面
星级评定组件。
以前是使用iframe实现无刷新页面加载效果现在没人用了。
发送ajax的步骤
1、创建XMLHttpRequest对象 let xhr = new XMLHttpRequest();
2、准备发送
3、执行发送动作
4、指定回调函数
let xhr = new XMLHttpRequest();
xhr.open("GET","test.txt",true);
//xhr.open("method","url",async); async:true(异步)或 false(同步)
xhr.send(); //参数为string 只能用于post请求
function myFunction()
{
loadXMLDoc("ajax_info.txt",function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
});
}
复制代码
如果需要像 HTML 表单那样 POST 数据,请使用 setRequestHeader() 来添加 HTTP 头。
xmlhttp.open("POST","ajax_test.asp",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("fname=Bill&lname=Gates");
复制代码
请求方法
get请求参数在url中传递 需要注意编码问题
post请求参数在请求体中传递 需要设置请求头信息 回调函数
xhr.readyState 的几个状态
0 xhr对象初始化
1 执行发送动作
2 服务器端数据已经完全返回
3 数据正在解析
4 数据解析完成,可以使用了
xhr.status 返回的状态码
200 数据相应正常
301永久重定向
404 没有找到资源
500 服务器端错误
数据格式 xml json responseXML responseText
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
复制代码
以什么数据类型返回
ajax请求服务器的流程
①:浏览器让xhr去跟服务器要点儿数据
②:浏览器接着干别的事情
③:xhr去向服务器请求数据
④:服务器返回数据给xhr
⑤:xhr通知浏览器数据回来了
⑥:浏览器收到xhr返回的数据渲染页面
jquery中的ajax 是$.ajax()
跨域解决方案
jsonp
document.domain+iframelocation.hash + iframewindow.name + iframe
window.postMessage
flash等第三方插件
复制代码
php
变量以$开头 字母/数字/下划线 不能以数字开头,大小写敏感。
内容输出
echo :输出简单数据类型,如字符串、数值
print_r() : 输出复杂数据类型,如数组
var_dump():输出详细信息,如对象数组
php中字符串拼接用.
php中单引号中的变量会被当做普通字符串
双引号变量会被解析成变量
运算符与js基本一样
数据类型
字符串 整形 浮点型 布尔型 数组 对象 null
预定义变量(表单处理)
$_GET $_POST
分支循环
if/switch
while
for
foreach
函数
自定义函数
语法规则(函数名不区分大小写)
系统函数
gettype()
json_encode()