In meiner Anwendung verbinden das Browserfenster mit langen Abruf (Comet) mit dem Server. Wenn der Benutzer mehrere Browserregisterkarten öffnet, kommuniziert nur einer von ihnen (der Master) mit dem Server und dient als Proxy für die anderen Registerkarten. Ich möchte flash localConnection verwenden, um Daten zwischen den Registerkarten auszutauschen.Überwachen Sie Browser-Registerkarten mit localConnection und spüren Sie, wenn ein Benutzer eine Registerkarte schließt
Was passiert, wenn ein Benutzer den Master-Tab schließt, der die Komet-Sitzung enthält? Ich kann JavaScript mit dem Unload-Ereignis verwenden, um die anderen Registerkarten zu informieren, dass die Registerkarte "Master" geschlossen wird, und dann die LocalConnection schließen, aber das Unload-Ereignis ist unzuverlässig. Ich kann die Abfrage verwenden, um das Verbindungsobjekt des Master-Tabs zu überwachen, aber es klingt schmutzig.
Wenn der Master geschlossen ist, muss einer der anderen Tabs zum Master werden. Wie stelle ich sicher, dass nur einer von ihnen versucht, der Master zu werden?
Wenn ein Benutzer die Registerkarte schließt, ohne dass Flash die localConnection schließen kann, verursacht einen Speicherverlust?
Danke
Nun, wenn Sie bereits Comet Daten zu streamen, warum müssen Sie ein Herzschlagsignal tun? Wenn ein Kunde die Daten, die er erwartet, nicht erwartet, wenn er es erwartet, wissen Sie "der König ist tot" und beginnen Sie, die Liste der Nachfolger herunter zu gehen. Wirklich, Comet ist schon mehr als ein bisschen dreckig. Dies ist eigentlich eine ziemlich saubere Lösung für die Behandlung des Problems - und es würde wahrscheinlich am Ende in ähnlicher Weise arbeiten, wenn Sie eine tatsächliche Socket-Verbindung tun würde. –