2010-12-24 4 views
9

Depuis (html5) localStorage et ses équivalences persistent entre les onglets et les fenêtres, j'ai pensé à l'utiliser pour le passage de messages. Le problème est que fetch et store sont des opérations différentes, et donc pas atomiques. J'ai des modèles qui reposent sur la génération d'UUID, les résolutions de conflit, et le balisage pour faire le petit sous-ensemble de ce que j'ai besoin de faire, mais ma vraie question est:localStorage et de verrouillage

Comme le stockage local est une ressource de mémoire partagée, quels sont les mécanismes de verrouillage disponibles pour un accès mutuel?

+1

Merci pour le changement ... la terminologie est en quelque sorte une soupe à l'alphabet en ce moment. Il y a IE userData, le stockage DOM de w3c, le stockage HTML5, Flash LocalStorage, etc. – kristopolous

Répondre

3

Je pense que ce dont vous avez vraiment besoin est Channel Messaging, mais pour autant que je sache, personne ne l'a encore implémenté. Il permet une messagerie côté client arbitraire entre les scripts.

+0

oui ... c'est proche. – kristopolous

1

Il n'y en a pas. Vous devrez trouver votre propre mécanisme de verrouillage. Vous pouvez bien sûr utiliser l'une des méthodes existantes que d'autres personnes ont trouvées pour d'autres choses (comme le verrouillage de memcache par exemple).

+0

Oui, il semble que les mécanismes de verrouillage devraient être maintenus côté serveur; qui, d'une certaine manière, va à l'encontre d'un objectif principal: être capable de propager des informations d'une connexion maître de style Comet sur un seul onglet à tous les autres. – kristopolous

+0

umm Je ne suis pas sûr de ce que vous faites, mais localStorage n'a rien à voir avec le serveur. En ce qui concerne la comète, je ne suis pas sûr à 100% mais je pense que si vous avez plusieurs onglets (ou fenêtres) ouverts pour le même client, un message envoyé au client devrait atteindre tous les onglets. Cela dépend de l'implémentation de la comète que vous utilisez bien sûr. –

+0

Leurs limites de connexion sont celles que vous connaissez. À moins que vous n'organisiez les données du côté client, il est possible que vos utilisateurs les touchent, en fonction de leurs modèles d'interaction avec vos services. – kristopolous