1. 程式人生 > >問題收集:網路上,這種$.session.get()等方法,在jq中使用操作session,需要注意的地方

問題收集:網路上,這種$.session.get()等方法,在jq中使用操作session,需要注意的地方

    這兩天做一個小專案,想在JQ中操作session,百度後出現了好多類似於這樣的操作,就是先匯入個jqSession,然後使用如下圖的方法.

但是在使用後,發生了錯誤,經檢驗發現:

他的這個方法是有侷限性的.

無法通過此方法去操作 採用其他方法設定的 session.

舉例證明:

<script type="text/javascript">
	$('a').click(function(){
		alert("11");
		var y = '<%=request.getSession().getAttribute("uname") %>';
		alert(y);  //彈出admin,說明已經設定好了session中的k-v值
		var i = $.session.get("uname");
		alert(i);  //彈出undefined,但是並沒有取到相關的值
		$.session.set("uname",y);
		var i = $.session.get("uname");
		alert(i);  //彈出admin,通過$.session.set()才能夠取到
		$.session.remove("uname");
		var i = $.session.get("uname");
		alert(i);  //undefined,移除後為null
		var y = '<%=request.getSession().getAttribute("uname") %>';
		alert(y);  //admin, 去無法將req中的session中的k-v值移除
		window.parent.location.replace("Login.jsp");
	})
</script>
通過程式碼發現,$.session的這種方式 ,只能操作其自身的,也就是說,如果要使用這種方式,整個專案都要採用JQSession.

與是不是在同一頁面無關.

例如:


我在前一頁採用jqsession方式設定好後,

<script type="text/javascript">
	$('a').click(function(){
		alert("11");
		var y = '<%=request.getSession().getAttribute("uname") %>';
		alert(y);  //彈出admin,說明就算在前一頁用$.session方式,後一頁採用req是依然取不到
		var i = $.session.get("uname");
		alert(i);  //彈出qqqqq,獲取到了
	})
</script>

最後總結:

    jqSession是一個好的方式,但是在運用的時候要整個專案都要採用,不然會出現偏差的.

    jqSession連結:https://ciphertrick.com/demo/jquerysession/js/jquerysession.js

    連結複製在迅雷裡即可下載