無論是什么類型的網站,跨頁面跳轉過程中的信息傳遞都是非常重要的。比如,在用戶登錄后,他訪問的每個頁面都會需要知道他的登錄狀態。這個狀態就需要通過session來實現,在這里,我們將會講解javascript如何寫session,讓我們深度挖掘這個技術。
首先,我們來簡單介紹一下什么是session。一個session可以簡單理解為一個持續時間較短的會話(session會話),它與特定的客戶端(一般是瀏覽器)保持關聯。當一個用戶第一次訪問我們的網站時,服務器會生成一個唯一的session id,并告知瀏覽器保存,然后在后續的會話中,每次請求都會帶上這個session id,服務器通過session id查找相應的session狀態信息,從而完成用戶狀態的維護。
javascript寫session的關鍵是其API的使用。在這里,我們可以通過sessionStorage和localStorage來實現session,因為瀏覽器提供了將數據在當前會話(session)中保存和不斷保存的兩種方式。sessionStorage保存的數據只存在于當前會話中,當關閉瀏覽器窗口或瀏覽器標簽頁時會清空,而localStorage保存的數據則不存在時間限制,除非手動清除。
// 使用sessionStorage
sessionStorage.setItem('key', 'value'); // 設置sessionStorage
var itemValue = sessionStorage.getItem('key'); // 獲取sessionStorage
sessionStorage.removeItem("key"); // 刪除sessionStorage
sessionStorage.clear(); // 清除sessionStorage
// 使用localStorage
localStorage.setItem('key', 'value'); // 設置localStorage
var itemValue = localStorage.getItem('key'); // 獲取localStorage
localStorage.removeItem("key"); // 刪除localStorage
localStorage.clear(); // 清除localStorage
以上就是javascript如何寫session的全部內容了,這里還要補充一個小技巧,就是將sessionStorage和localStorage封裝在一個類里,方便我們使用。這個類可以定義如下:
class Storage {
constructor(storage) {
this.storage = storage;
}
get(key) {
return JSON.parse(this.storage.getItem(key));
}
set(key, value) {
this.storage.setItem(key, JSON.stringify(value));
}
remove(key) {
this.storage.removeItem(key);
}
}
// 使用方法
const session = new Storage(sessionStorage);
const local = new Storage(localStorage);
session.set('key1', {name: 'session'});
local.set('key2', {name: 'local'});
以上就是javascript寫session的全部內容,希望這篇文章對你有所幫助。