node.js サーバーからクライアントの JavaScript にデータを (理想的には json オブジェクトの形式で) 送信する最良の方法は何ですか。いくつかのオプションを考えましたが、どれも私の意見ではあまり適していないようです。セカンドオピニオン、またはその他の提案は、私が探しているものです。
グローバル変数を設定するために、サーバーに
<script>
タグ内のコードを出力させます。以前にこれを使用したことがありますが、主に XSS の可能性があるため、その考えは嫌いです。送信されるデータがユーザーによって定義されていなくても、それは悪い習慣だと思います。
内部のデータを使用して Cookie を設定します。
このオプションは少し優れていますが、ページが読み込まれるたびにデータが変更される可能性が高いため (少なくとも私の設定では)、Cookie はこのように揮発性であるとは考えられないため、実際には適していません。
クライアントの JavaScript で、ページの読み込み時にサーバーに ajax リクエストを作成して、json ファイルをリクエストします。
これも同様に機能しますが、多くの不要なオーバーヘッドが追加されます。1 ページあたり 2 つのリクエストは不要のようです。
バックグラウンド:
ログアウトしたユーザーのインデックスとメイン コンテンツ テンプレートの 2 つのテンプレートを持つサイトがあります。
私のサーバー側は、node.js、express.js、jade、および less から構築されています。
すべてのリンクに history.pushState を使用し、クライアントのページ ルーティングに crossroads.js を使用しています。ロードされたテンプレートとユーザーの ID を送信できるようにしたいと考えています。クライアントの JavaScript にログインしている場合は、それに応じてページの変更を処理できます。ログアウトしたユーザーは、編集権限がなくてもコンテンツ ページを表示できます。また、特定のリンクをクリックすると、インデックス テンプレートに戻るはずです。