什么情况下需要使用到异步请求?

不需要整个页面的全部刷新,仅是需要页面的局部数据刷新即可时(异步请求简称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查询

 

posted on 2019-05-01 14:17  牛逼哥  阅读(2203)  评论(0编辑  收藏  举报