Domanda

È possibile trovare istanze estere di determinati sito Web? OFC questi sono schede aperte in modo indipendente (non da Window.open). Devo impedire all'utente di aprire 2 schede e inviare un messaggio alla scheda precedentemente aperta per informare che è impossibile aprire 2 schede. 2 Le schede intensive possono interrompere l'archiviazione offline e la struttura WebSQL, in modo da non poter consentire alle persone di utilizzare 2 schede. È anche un'app semi-offline, quindi deve essere una soluzione sul lato client.

È stato utile?

Soluzione

È possibile comunicare tra le schede usando LocalStorage. Ogni volta che scrivi un valore, un evento "archiviazione" viene sparato sull'oggetto finestra in ogni scheda (tranne quello corrente).

http://diveintohtml5.info/storage.html

Scorri verso il basso fino a "Monitoraggio delle modifiche nell'area di archiviazione HTML5"

L'evento includerà event.key, event.newValue, event.oldValue.

Questo funziona solo nei browser moderni.

Altri suggerimenti

Nel 2021, è possibile utilizzare il lavoratore del servizio:

https://github.com/gyteng/service-worker-event

Avviso: il lavoratore del servizio lavora solo in https protocollo

LocalStorage può essere utilizzato per tracciare le finestre. Dovresti prendere in considerazione una situazione in cui la finestra si schianta: lascerà la spazzatura a LocalStorage. L'accesso a una risorsa comune da più Windows contemporaneamente può essere fatto da Mutex in base a LocalStorage.

Ho recentemente pubblicato il Biblioteca di comunicazione intrecciata (Tutte le funzionalità sono descritte in Readme). Fornisce una condivisione dei dati thread-safe, blocchi di finestre incrociate e trasmissioni di eventi. Risolve anche alcuni problemi IE.

Il canale di trasmissione è progettata per questohttps://developer.mozilla.org/en-us/docs/web/api/broadcast_channel_api

Ma l'API nativa supporta solo i browser moderni. C'è anche un supporto per pacchetto NPM tutti i vecchi browserhttps://www.npmjs.com/package/broadcast-channel

Non hai il controllo su questo. L'utente può fare praticamente tutto ciò che desidera sul computer.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top