2016-11-03 3 views
0

Arrayにローカル変数を格納しています。しかし、私はページを更新しようとすると、配列が空になります。ページリフレッシュ後も以前の値が必要です。JavascriptまたはJqueryを使用してブラウザにローカル値を格納する最も良い方法は何ですか?

私はJavascriptで「Previous/Next」機能を試しています。それは正常に動作しています。しかし、私はページをリロードしようとすると、配列の値が削除されます。このコードで

<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などの他の方法でこのタイプの保存を処理する方法はありますか。

+2

ローカルストレージのようなものをお探しですか? – JJJ

+3

https://developer.mozilla.org/en/docs/Web/API/Window/localStorage – Utkanos

+0

CookieまたはLocalStorageを使用してください。 – briosheje

答えて

0

LocalStorage APIを使用すると、クライアント側でデータを永続化できます。古代のブラウザをサポートする必要がある場合は、単純なフォールバックをCookieに書き込むことができます。 LocalStorageにはいくつかのサイズ制限があります。正しく覚えていれば、ドメインあたり約10MBの容量があります。

文書hereを確認してください。

localStorage.getItemlocalStorage.setItemの機能を使用できます。あなたは

localStorage.setItem("DataValue", "Your Value"); 

のようにこれを行うと、その

sessionStorage.DataValue = "Your Value" 

および取得のようなのsessionStorageによって

localStorage.getItem("DataValue") 

ことで、これを取得することができますのlocalStorageではlocalStorageまたはsessionStorage を使用することができますいずれか

0

〜によって

var Data = sessionStorage.DataValue 

これらはすべてクライアント側の機能です。 sessionStorageはブラウザの個々のタブにバインドされており、localStorageがブラウザ全体で利用可能になります。

0

値を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> 
+0

ありがとうAli Khanusiya、 – Mahendra

+0

私の主な目標は、URLを3秒ごとに配列に格納することです。 Storings URLはうまくいきますが、ページが更新されるとインデックス[ind]と配列[urllist]はnullになります。私はリフレッシュする前にind、urllistの長さを変更したいと思います。これについての最終的な解決策を教えてください。 – Mahendra

+0

Mahendra

関連する問題