問題收集:網路上,這種$.session.get()等方法,在jq中使用操作session,需要注意的地方
阿新 • • 發佈:2019-01-07
這兩天做一個小專案,想在JQ中操作session,百度後出現了好多類似於這樣的操作,就是先匯入個jqSession,然後使用如下圖的方法.
但是在使用後,發生了錯誤,經檢驗發現:
他的這個方法是有侷限性的.
無法通過此方法去操作 採用其他方法設定的 session.
舉例證明:
通過程式碼發現,$.session的這種方式 ,只能操作其自身的,也就是說,如果要使用這種方式,整個專案都要採用JQSession.<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>
與是不是在同一頁面無關.
例如:
我在前一頁採用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
連結複製在迅雷裡即可下載