1. Ajax Asynchronous Javascript and XML
Asynchronous 异步
synchronous 同步
无刷新请求,提高用户体验
2. 发起一个Ajax请求
var xhr = new XMLHttpRequest();
xhr.open(methods, url, true);
xhr.send();
xhr.onreadystatechange = function() {
if(xhr.readyState === 4 && xhr.status === 200) {
console.log(xhr.responseText)
}
}
3. 跨域,突破同源策略的限制,访问资源
同源策略,浏览器的机制,安全性策略,限制源[协议、域名、端口号]不同的主机的资源互相访问
4. 跨域的解决方案:
a. jsonp 后台接口返回的是:函数名(json格式的字符串)
b. 使用file_get_contents() 转换一下,变成自己后台的接口
c. 后台接口使用header("Access-Control-Allowed-Origin: *")
d. chrome浏览器配置
chrome插件Access-Control-Allowed-Origin: *
php与javascript语言异同点:
异:a.javascript运行在浏览器端,php运行在服务器端
b. 变量的声明,js通过关键字var声明
php变量声明以$开头
c. js字符串拼接"+"号, php使用"."号
d. js引号无区别,php单引号原样输出,双引号内部变量会替换,
e. js没有类,php对象的创建必需先有类Class
f. 对象属性/方法的访问,js对象属性的访问【1.点访问法,2.中括号访问法】
php对象属性的访问 "->"
g. php 中的函数名,true/false大小写不敏感,变量大小写敏感
h. 数据类型 js Number/Undefined/String/Boolean/Null Object/Array
php Integer/Float/String/Boolean
Array/Object/NULL/Resource
Array 包括索引数组,关联数组
i. 引入外部库文件,js 使用script标签引入
早期的js没有模块化概念,解决文件的依赖关系,
AMD/CMD require.js/seajs
CommonJS node.js
ES6
php 使用include/require
j. js没有权限操作文件,php有文件系统
l. 变量 var/let/const
$str/global/static/const
$_GET/$_POST/$_FILES
同:a.动态脚本
b.弱类型
c.控制语句 if...else/for/switch/while/break/continue/return/