異步請求


什么情況下需要使用到異步請求?

不需要整個頁面的全部刷新,僅是需要頁面的局部數據刷新即可時(異步請求簡稱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查詢

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM