2010-12-24 20 views
9

(html5)localStorageとそれと同等のものはタブとウィンドウの間に存続するので、私はメッセージの受け渡しにこれを使うことを考えました。問題は、フェッチとストアが異なる操作であり、アトミックではないことです。私はUUIDの生成、競合の解決、ビーコン処理に依存するモデルを持っていますが、私の本当の問題は次の通りです。localStorageとlocking

ローカルストレージは共有メモリリソースなので、相互にアクセスできるロック機構

+1

おかげで...専門用語は今のアルファベットスープの一種です。 IE userData、w3cからのDOMストレージ、HTML5ストレージ、Flash LocalStorageなどがあります。 – kristopolous

答えて

3

本当に必要なのはChannel Messagingだと思いますが、私が知っている限り誰もまだそれを実装していません。スクリプト間の任意のクライアントサイドメッセージングを可能にします。

+0

はい...これは近いです。 – kristopolous

1

ビルトインはありません。あなた自身のロック機構を考え出す必要があります。もちろん、他の人が(例えばmemcacheでロックするなど)他の人に思いついた既存のメソッドを使用することはできます。

+0

はい、ロック機構はサーバー側で維持する必要があります。ある意味では、Cometスタイルのマスター接続からあるタブで情報を他のすべてのタブに伝播できるようにすることです。 – kristopolous

+0

私はあなたが何をしているのかはわかりませんが、localStorageはサーバとは何の関係もありません。彗星に関しては、私は100%確信していませんが、同じクライアントに対して複数のタブ(またはウィンドウ)を開いた場合、クライアントにプッシュされたメッセージはすべてのタブに到達するはずです。あなたが彗星をどのように使用しているかによって異なります。 –

+0

彼らはあなたが知っているように接続の制限です。クライアント側でデータをマーシャリングしない限り、ユーザーがサービスとのやりとりのパターンに基づいてこれらのデータをヒットする可能性があります。 – kristopolous