検索

ホームページ  >  に質問  >  本文

javascript - js 同時に開いている 2 つのタブ間で通信するエレガントな方法はありますか?

例を挙げてください:

2 つのページ a と b を同時に開き、a に焦点を当てていくつかの操作を実行し、ページ a の js に操作を処理させ、データをその隣のページ b に送信しました。現時点では、ページ b は、更新したりサーバーを経由したりすることなく、これらのデータを受信して​​フィードバックを提供できます。百度音楽 PC Web 版で曲を聴くときと同様に、百度オルゴールページとリストページが開いている場合、リストページで曲の「再生」ボタンをクリックすると、隣のオルゴールページが表示されます。新しいページを開かなくても、自動的にその音楽の再生を開始できます。

これを行うためにクッキーなどを使用するのは少し無駄だといつも感じます。

黄舟黄舟2800日前726

全員に返信(4)返信します

  • 阿神

    阿神2017-05-16 13:41:46

    これは、さまざまな方法によるアリババの面接の質問です。通信は localstorage の storage イベントを使用して実現できます。shadredworker も問題を解決でき、WebSocket も使用できます。

    返事
    0
  • 仅有的幸福

    仅有的幸福2017-05-16 13:41:46

    ab ページを制御でき、URL さえ決定できれば、sharedworker / localstorage / sessionstorage を使用できます

    返事
    0
  • 世界只因有你

    世界只因有你2017-05-16 13:41:46

    リーリー

    属性 target="framename" は、指定されたフレーム (ページ) でリンクを開くことを意味します。
    実現できること:
    クリックしてショッピング カートに商品を追加するとき、ショッピング カート ページが既に開いている場合は、ページのみを更新します。新しいショッピング カート ページを開く代わりに。
    クリックして曲を再生すると、プレーヤー ページが既に開いている場合は、新しいプレーヤー ページは開かずにページのみが更新されます。

    返事
    0
  • 世界只因有你

    世界只因有你2017-05-16 13:41:46

    ここにアイデアがあります:
    ブラウザは同じドメイン名を持つ 2 つの Web ページを同時に開きます。localStorage是共享的,不仅如此,他们之间的localStorage值改变也是可以监听的。同域的a和b两个页面,a页面发生localStorage.set('abc', 123)、それらのページは次の方法で変更を監視できます。 リーリー

    返事
    0
  • キャンセル返事