2017-03-10 15 views
0

すべてのブラウザウィンドウ/タブが閉じられた後でも、$localStorageでデータを保存しようとしています。これについてどうすればいいですか?

+0

あなたが試したこととdidnotの機能についての詳細情報を追加してください。 –

+0

私は '$ localStorage.variable = data'と' localStorage.setItem( "lastname"、 "Smith")を使って割り当てを試みましたが、データの一部が保存されているようですが、その一部を失っています。私はページに関連付けられたタブを閉じることができますが、ブラウザを開いたままにしておくと機能しています。しかし、ブラウザ全体が閉じられると、$ localStorageがフラッシュされているように見えます。 – drama

答えて

1

ブラウザが閉じているときに保存すると思いますか?ブラウザ(またはあなたのタブだけ)が閉じられると、コードの実行が停止します。

これがあなたが探しているものなら、これはトリックを行うべきです。

window.onbeforeunload = function() { 
    //localStorage saving here 
    return null; //Will not halt the unload from happening 
} 

https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onbeforeunload

しかし、その機能が離れてナビゲート閉鎖されているか、タブ/ブラウザ(リンクをクリック)から、ページが残っている任意の時間と呼ばれますことを、メモしてください。あなたがしたい場合は

あなたはこの

// Store 
localStorage.setItem("lastname", "Smith"); 
// Retrieve 
var name = localStorage.getItem("lastname"); 

それとも、角度のサービスを探しているならば、angular-local-storage

angular 
    .module('MyModule') 
    .controller('MyController', ['$scope', 'localStorageService', 
     function($scope, localStorageService) { 
      //localStorageService.add('test', 'val'); 
      localStorageService.set('test', 'val'); 
      var value = localStorageService.get('test'); 
     } 
    ]); 

を使うようなHTML/JavaScriptののlocalStorageを使用することができますいずれか

+0

これは役に立ちますが、私はデータを保存し、ブラウザを閉じて、保存したデータを元に戻したいと思っています。 – drama

+0

これは、localStorageの機能です。アプリケーションが開いているときに一度保存するか、localStorageに書き込んだり、次回にページが読み込まれたときに、localStorageに書き込んだ前回のデータが既にそこにある場合は、コミット/書き込みに特別な処理をする必要はありませんlocalStorage.setItem()の呼び出し以外。これは単に書き込まれるだけで、次のページの読み込み時にlocalStorage.getItem()を使用して取得できます。 –

0

はここDoc

ですブラウザが閉じるときにlocalstorageを設定して、@ Benのようなonbeforeunloadメソッドを使用してください。

window.onbeforeunload = function() { 
    localStorage.setItem("lastname", "Smith"); 
} 
関連する問題