ajax
-
ajax
全名
async javascript and XML
-
默认异步
执行机制 - 数据不在页面上,不方便搜索引擎抓取
- AJAX不能跨域跨域使用jsonp
1.创建AJAX
- 高版本浏览器(IE9及以上)
xhr = new XMLHttpRequest()
- 低版本浏览器(IE9以下)
xhr = new ActiveXObject(‘Mricosoft.XMLHTTP’)
2.配置链接信息
xhr.open(‘请求方式’,’请求地址’,’是否异步’) // true 为异步 false 为同步 注:js中同步异步概念是相反的
3.发送请求
- get请求参数直接加在请求地址上
xhr.send()
- post请求参数,先设置数据格式
- 参数采用’key=value&key=value’ 的形式
xhr.setRequestHeader(‘content-type’, ‘application/x-www-form-urlencoded’)
xhr.send(‘a=100&b=200’)
jsonp跨域
script 标签的本质
-
浏览器给我们提供了一个
script
标签 - 它的本质就是请求一个外部资源,是不受到同源策略的影响的
-
同时
script
标签的
src
属性,也是一种请求,也能被服务器接收到 -
并且:
-
script标签的src属性请求回来的东西是一个字符串,浏览器会把这个字符串当作 js 代码来执行
-
-
所以我们就可以利用这个
script
标签的
src
属性来进行跨域请求了
首先配置代理 (正向/反向)
正向代理
- 有一个客户端需要向一个非同源的服务器B发送请求
- 我们搭建一个和客户端同源的服务器A
- 当客户端发送请求的时候,由服务器A来接受
-
再由服务器A向服务器B发送请求,因为
同源策略是由浏览器给的
,服务器之间没有 - 服务器B接受到请求以后,会处理请求,并把响应返回给服务器A
- 再由服务器A把响应给到客户端就可以了
- 我们就可以用这个方式来进行跨域请求了
反向代理
- 反向代理一般是用来做负载均衡的
- 当我请求一个服务器的时候,其实请求的是服务器端设置的代理服务器
- 由代理服务器把若干大量的请求分发给不同的服务器进行处理
- 再由服务器把响应给到代理服务器
- 代理服务器返回给客户端
PHP(世界上最好的语言?!)
php 文法书写
- 所有的 php 代码都要写在一个 php 的范围内
-
要求以
<?php
开头 -
要求以
?>
结尾<?php # php 的代码写在这里 ?>
- 注意php每句话后面必须有’ ; ‘
定义变量
-
在 php 中没有
var
关键字给我们定义变量 -
直接使用
$
来确定一个变量<?php # 下面就是一个定义了一个变量,并且赋值为 100 # 变量名就是 $num $num = 100; $boo = true; # 下面是一个字符串 $str = "你好 php"; ?>
条件语句
-
在 php 中使用条件语句和 js 基本一致
<?php $boo = true; if ($boo) { echo '你好,欢迎观临!'; } else { echo '您还没有登陆'; } ?>
循环语句
-
在 php 中循环语句和 js 基本一致
<?php $num = 5; for ($i = 0; $i < $num; $i++) { echo 'hello php'; } ?>
字符串拼接
-
在 php 中,字符串拼接不再是使用
+
进行拼接了,而是使用
.
进行拼接$str = 'hello '; $str2 = 'world'; $str3 = $str . $str2; echo $str3; # 得到的就是 hello world
数组
-
在 php 中的数组和 js 中特别不一样
<?php # 创建一个数组 $arr = array(1, 2, 3); print_r($arr); # Array ( [0] => 1 [1] => 2 [2] => 3 ) # 这个就类似于我们 js 中的数组,按照索引来的 # 创建一个关联数组 $arr2 = array('name' => 'Jack', 'age' => 18, 'gender' => '男') print_r($arr2) # Array ( [name] => Jack [age] => 18 [gender] => 男 ) # 这个就类似于我们 js 中的 对象,键值对的形式 ?>
操作数据库
完整步骤
-
我们完整的写一下操作的步骤
<?php $conn = mysql_connect('localhost', 'root', 'root'); mysql_select_db('test1913'); $res = mysql_query('SELECT * FROM `student`'); $row = mysql_fetch_assoc($res); mysql_close($conn); print_r($row); ?>
本地存储
localStorage、sessionStorage、cookie
- localStorage和sessionStorage都是用来存储客户端临时信息的对象。
- localStorage和sessionStorage都只能存储字符串类型的对象
- localStorage生命周期是永久,除非用户手动清除localStorage信息,否则这些信息将永远存在。
- sessionStorage生命周期为当前窗口或标签页,一旦窗口或标签页被永久关闭了,那么通过sessionStorage中存储的数据也就被清空了。
- 不同浏览器无法共享localStorage或sessionStorage中的信息。相同浏览器的不同页面间可以共享相同的localStorage(页面属于相同域名和端口),但是不同页面或标签页间无法共享sessionStorage的信息。
使用方法
var xxx="xxx";
localStorage.setItem("xxx",xxx);
xxx=localStorage.getItem("xxx");
// localStorage.xxx
var xxx="xxx";
sessionStroage.setItem("xxx",xxx);
xxx=sessionStorage.getItem("xxx");
// sessionStorage.xxx