2016-10-26 4 views
1

Gibt es eine Möglichkeit, einen Änderungsereignis-Listener lokalen Speicherelementen des Browsers hinzuzufügen.Lokales Speicheränderungsereignis anhören

Ich habe eine Standalone-App, die Änderungen an Localstorage macht, auf die ich meine Backbone-Ansicht hören und dementsprechend einige Aktionen ausführen soll.

ich nichts über das Internet bis auf einen Weg, um es in jQuery zu tun finden konnten:

$(window).bind('storage', function (e) { 
    console.log(e.originalEvent.key, e.originalEvent.newValue); 
}); 

Antwort

1

jQuery binden kann, an das storage Ereignis (genau in der Art und Weise Sie schrieb), aber es gibt eine einige Dinge, die Sie müssen beachten:

  1. Sie müssen den Code hinter einer echten IP/Domain laufen (können Sie mehr my explanation here lesen)
  2. Das storage Ereignis auf jedem geöffneten Reiter wird Feuer außer die aktuelle Registerkarte (was bedeutet - wenn Sie nur 1 offene Registerkarte haben, und Sie einige Änderungen an den lokalen Speicher in dieser Registerkarte vornehmen - die gerade wird nicht Feuer). More information here.

Bezug Rückgrat - versuchen, etwas wie folgt aus:

var SomeView = Backbone.View.extend({ 
    initialize:function() { 
     $(window).on("storage", this.handleLocalStorageChange) 
    } 
}); 
+0

Dank für die Erklärung. Aber kann es vom Rückgrat aus getan werden? –

+0

überprüfen Sie das Update, lassen Sie mich wissen, wenn es funktioniert – Dekel

+0

Dank @Derkel, das hat funktioniert. Danke vielmals!! –