什么是cookie
1.cookie是存儲於訪問者計算機中的變量
2.cookie是瀏覽器提供的一種機制
3.可以由js控制(設置、讀取、刪除)
4.cookie可以實現跨頁面全局變量可以跨越同域名下多個網頁,但不能跨越多個域名使用
5.同一個網站所有頁面共享一套cookie 可以設置有效期限存儲空間大概4kb左右
6.cookie機制將信息存儲於用戶硬盤,因此可以作為跨頁面全局變量,這是它最大的一個優點。
常用場合
1.保存用戶登入狀態
2.跟蹤用戶行為
3.訂制頁面
4.購物車(記錄商品)
缺點
cookie可能被禁用
cookie與瀏覽器相關,不能相互訪問
cookie可能被用戶刪除
cookie安全性不夠高(純文本記錄)
cookie儲存空間小4kb
設置cookie(在谷歌瀏覽器application----->cookie里面看得到)
每個cookie是一個名/值/對(key=value)格式的字符串---->typeof 檢測
document.cookie="user=liming"
改變cookie:重新賦值
document.cookie="user=xiaoming";
設置有效期:
var dates = new Date();
dates.setDate(dates.getDate()+3);//按天數設置(當前日期加三天)
document.cookie="password=123456;expires="+dates;
獲取cookie
var cookies = document.cookie;----->所有的cookie都獲取到了
cookie只能一次性獲取所有cookie值;
split()切割字符串獲取單獨cookie值;
var cookieArr = cookie.split("; ");---->分號空格切割
console.log(cookieArr)---->轉換成數組 鍵值對的形式
for(var i=0;i<cookieArr.length;i++){
var cookieArr2 = cookieArr[i].split("=");
console.log(cookieArr2);
}
封裝成函數:
function getCookie(key){ ---->鍵名傳進來
var arr =document.cookie.split("; ");
for(var i=0;i<arr.length;i++){
var arr2=arr[i].split("=");
if(arr2[0]==key){
return arr2[1];----->返回這個值;
}
}
return false;
}
console.log(getCookie("user"));
刪除cookie:
var date2 = new Date();
dates.setDate(date2.getDate()-1);//按天數設置(過去一天任何數字都行只要是過期)
document.cookie="password=123456;expires="+date2;
JSON:輕量級的數據交換格式,是js原生數據格式。
對象鍵名可以不加引號;但是json一定要 而且json文件不可以寫注釋;
json字符串,但不是json對象。
var json = '{"name":"xiaoming";"sex":"男";"age":"28"};'
正常的json
var jsondata = {"name":"xiaoming";"sex":"男";"age":"28"}
alert(json.name)
解析
var json2 = eval("("+json+")");--->使用eval函數解析JSON是一種很不安全的方式,能不用最好就不用,
原因是eval不但可以解析JSON字符串,還會執行其中的代碼塊(如果有的話)
所以我們比較常用的就是使用JSON.parse()方法解析
var json2 = JSON.parse(jsondata);
for in循環解析json數據
for(var i in json){
console.log(i)
console.log(i+";"+json2[i]) ---->i為鍵名
}
ajax 去掉緩存就是加上new Date().getTime()--->get方法會產生緩存,post一般無需考慮
JSON.stringify(obj) : 將一個JSON對象轉換成字符串。
parse用於從一個字符串中解析出json對象,如
var str = '{"name":"huangxiaojian","age":"23"}'