[英]what is the best way to store local values in browser using Javascript or Jquery?
我在數組中存儲局部變量。 但是,當我嘗試刷新頁面時,數組變空。 我也想在頁面引用后使用以前的值。
我正在嘗試使用Javascript中的“上一個/下一個”功能。 它工作正常。但是當我嘗試重新加載頁面時,數組中的值將被刪除。
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script>
var urllist = [];
var ind = 0;
var myVar;
myVar = setInterval(Geturlfun, 3000);
function Geturlfun() {
var pageURL = window.location.href;
if (urllist[ind - 1] == pageURL) {
} else {
urllist[ind] = pageURL;
ind = ind + 1;
alert(pageURL);
}
}
function goBkHist(a) {
var l_ref = ind - 2;
if (l_ref != 0) {
var pageURL2 = urllist[l_ref];
ind = l_ref + 1;
alert(pageURL2);
loadUrl(pageURL2);
}
}
function goFdHist(a) {
var l_ref_2 = ind;
var pageURL2 = urllist[l_ref_2];
ind = l_ref_2 + 1;
alert(pageURL2);
loadUrl(pageURL2);
}
function loadUrl(newLocation) {
window.location = newLocation;
location.reload();
return true;
}
</script>
</head>
<body>
<input type="button" value="BACK " onclick="goBkHist(-1)" />
<input type="button" value="FORWARD" onclick="goFdHist(1)" />
</body>
</html>
在此代碼中,如果我單擊“上一步”或“前進”,則顯示的URL,但是當我嘗試加載該URL時,它將重新加載頁面,並刪除數組中的值。
我該如何處理這些問題。
有沒有其他方法可以使用會話和cookie之類的其他方法來處理這種類型的存儲。
您可以使用LocalStorage API在客戶端保留數據。 如果必須支持古老的瀏覽器,則可以編寫一個簡單的備用cookie。 請注意,LocalStorage有一些大小限制,如果我沒有記錯的話,每個域大約有10MB。
在此處檢查文檔。
您可以簡單地使用localStorage.getItem
和localStorage.setItem
函數。
您可以使用localStorage
或sessionStorage
。
localStorage.setItem("DataValue", "Your Value");
並通過檢索
localStorage.getItem("DataValue")
通過sessionStorage其喜歡
sessionStorage.DataValue = "Your Value"
並通過檢索
var Data = sessionStorage.DataValue
所有這些都是客戶端功能。 sessionStorage
與瀏覽器的單個選項卡綁定,因為localStorage
在整個瀏覽器中都可用。
當您關閉該標簽時,存儲在sessionStorage中的值將被自動刪除。
如果您將值存儲在localStorage中,則除非您以編程方式將其刪除或刪除瀏覽器數據,否則不會自動刪除該值。
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script>
// Getting value from browser side.
if (window.sessionStorage.getItem('url_list'))
{
var urllist = $.parseJSON(window.sessionStorage.getItem('url_list'));
}
else
{
var urllist = [];
}
var ind = 0;
var myVar;
myVar = setInterval(Geturlfun, 3000);
function Geturlfun() {
var pageURL = window.location.href;
if (urllist[ind - 1] == pageURL)
{
}
else
{
urllist[ind] = pageURL;
ind = ind + 1;
alert(pageURL);
}
// Storing at browser side
window.sessionStorage.setItem('url_list', JSON.stringify(urllist))
}
function goBkHist(a) {
var l_ref = ind - 2;
if (l_ref != 0)
{
var pageURL2 = urllist[l_ref];
ind = l_ref + 1;
alert(pageURL2);
loadUrl(pageURL2);
}
}
function goFdHist(a) {
var l_ref_2 = ind;
var pageURL2 = urllist[l_ref_2];
ind = l_ref_2 + 1;
alert(pageURL2);
loadUrl(pageURL2);
}
function loadUrl(newLocation) {
window.location = newLocation;
location.reload();
return true;
}
</script>
</head>
<body>
<input type="button" value="BACK " onclick="goBkHist(-1)" />
<input type="button" value="FORWARD" onclick="goFdHist(1)" />
</body>
</html>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.