2017-09-10 9 views
0

たとえば、ユーザーが自動的にロードされる標準のindex.htmlページからWebアプリケーションを入力した場合、ユーザーがWebアプリケーションの一部である別のhtmlページをロードするWebページのボタンをクリックすると、そのソケットを使用できますか?今、私は3つのhtmlファイルに使用される1つのフロントエンドjsページを持っています。私の標準のインデックスファイルではうまくいきますが、別のhtmlファイル(フロントエンドのjsページにも接続されています)につながるボタンをクリックすると、ioがコンソールに定義されていないと表示されます。複数のHTMLページでソケットを使用できますか?

+0

ブラウザが別個のアプリケーションとして読み込むそれぞれの異なるページを考えてください。これが当てはまらない場合は、すでに持っているものと比較して*巨大なセキュリティ上の問題があります。 – Norguard

答えて

1

新しいHTMLページを読み込むと、新しいページのJavaScriptが実行されます。これにより、前のページのコンテキスト(確立された接続を含む)が破棄されます。

この周りにいくつかの方法があります。

  1. は、ページのロードの再確立接続するようにコードを記述します。これには、新しい接続が既存のセッションに関連付けられるように、ある種の識別子を渡す必要があります。

  2. アプリケーションをシングルページアプリ(SPA)として作成します。 SPAでは、最初のロード時にクライアントに渡されるJavascriptアプリの一部として、ページがクライアント側でレンダリングされます。したがって、ユーザーがあるページから別のページに移動しているときにリロードがないため、接続は失われません。

関連する問題