什么情况下需要使用到异步请求?
不需要整个页面的全部刷新,仅是需要页面的局部数据刷新即可时(异步请求简称Ajax)
async:false //锁定浏览器,使请求同步
同源策略?
何为同源:URL由协议、域名、端口和路径组成,如果两个URL协议、域名、端口相同便表示它们同源
跨域:反之,若协议、端口、域名有任何一个的不同,便为跨域
浏览器采用同源策略,禁止页面加载或执行与自身来源不同的域的任何脚本(包含src属性的标签可以加载跨域资源)
dataType:"jsonp"//使用该数据即可轻松实现跨域访问,type不论为何种请求都是get请求
AJAX和普通HTTP请求的区别:
1.AJAX就是浏览器使用XMLHTTPRequest对象发出的HTTP请求
2.AJAX请求受到浏览器的同源策略限制,存在跨域问题
3.AJAX发送复杂请求(get,post为简单请求)时,浏览器会预先发出OPTIONS请求预检
4.AJAX请求头会多出一个x-requested-with参数,值为XMLHttpRequest
5.AJAX请求不能在控制器中进行跳转(转发/重定向)
原生的JS实现异步请求:
jq发送异步请求也是封装了原生的JS代码实现发送(四个步骤)
1.创建XMLHttpRequest对象 var xmlHttp=new XMLHttpRequest(); 2.调用open方法获取跟服务器的连接 xmlHttp.open("GET","emp/ASDFSADFS?name=smith,ture"); 三个参数分别为:请求方式,请求路径(可传属性值),ture为异步 3.调用send方法向服务器发出请求 xmlHttp.send(null); //get请求参数为null,post请求可在方法中带请求参数 4.注册一个监听器//不断去监听请求的过程返回的一个状态码 xmlHttp.onreadystatechange=function(){ if(xmlHttp.readyState==4&&xmlHttp.status==200){ //表示响应完毕,xmlHttp.responseText获取服务器的响应内容(文本) cbFun(xmlHttp.responseText); } }; function cbFun(data){//回调函数 alert(data);//弹窗显示内容 }
防盗链:
req.getHeader("referer");(获取来访者地址)
contains:进行地址判断
索引的概念:
是提高查询速度的一种手段(一百多种)
创建索引基本语法:
CREATE INDEX 索引名 ON 数据表(字段名);
使用索引:TABLE ACCESS FULL表示在查询数据的时候使用的是全表扫描的模式
创建了索引查询的时候就在索引范围内扫描从而提高查询效率(INDEX)
删除索引:DROP INDEX 索引名
复合索引:一个索引在多个字段上创建,作用于多个字段
注意:当使用复合索引的时候如果只要其中一个字段作为判断条件,那么必须使用第一个字段(创建索引时的字段顺序)
索引才会生效,这就是索引的最左原则(若复合索引的字段都使用到了,且是AND连接条件,字段顺序不影响索引扫描oracle
mysql则需要和复合索引的字段顺序保持一致)
使用复合索引的时候如果放到OR查询中会导致索引失效,需要使用UNION ALL代替OR查询