18

私は node.js に非常に慣れていませんが、言語を学ぶことによって達成しようとしている単純なことは 1 つだけです。

特定の「div」のコードによって、現在そのページを見ているユーザーにその場でホットスワップできる Web ページを作成したいと思います。(つまり、div にはテキストが含まれていますが、画像がそれを置き換えます。) 理想的には、スワップは、ボタンをクリックするか、サーバーなどで起動されるコードによって、Web ページの管理者によって手動で実行されます。Web ページの通常の閲覧者はこれを行うことができません。ページのライブ変更のみが表示されます。

実際の例:

ライブ インターネット ブロードキャストはオフエアであるため、「div」には「オフエア」のテキストが含まれます。コードのライブ ホットスワップは、ブロードキャストがオンエアになると発生し、Web ページの視聴者には、代わりに「div」に html5 ブロードキャスト プレーヤーが表示されます。

node.js初心者にとってこれを行う最も簡単な方法は何ですか?

どうもありがとう :)

4

2 に答える 2

18

Socket.IO http://socket.io/#how-to-useを見てください。

サーバーが変更をブロードキャストすることを決定した場合:

io.sockets.emit('update-msg', { data: 'this is the data'});

クライアントで最初に socket.io に接続し、「update-msg」イベントを待って dom を更新します。

var socket = io.connect('http://localhost');
socket.on('update-msg', function (msg) {
    console.log(msg);
    $('#mydiv').html(msg.data)
});
于 2013-04-07T10:34:11.503 に答える
6

RequireJS と Node.js を使用して、フロントエンド コードをライブ アップデート (ホット リロード) するためのシステム/方法論を作成しました。React と Backbone の両方で動作することを確認しました。ここでそれについて読むことができます:

https://medium.com/@the1mills/hot-reloading-with-react-requirejs-7b2aa6cb06e1

これを自分で行うための基本的な手順:

  1. gulp.js ウォッチャーはファイルシステムの変更をリッスンします
  2. gulpfile の socket.io サーバーは、変更されたファイルのパスを含むすべてのブラウザー クライアントにメッセージを送信します。
  3. クライアントはそのファイル/モジュールを表すキャッシュを削除し、それを再要求します (AJAX を使用してサーバー ファイルシステムからプルします)。
  4. フロントエンド アプリは、ホット リロードするモジュールへのすべての参照を再評価するように構成/設計されています。この場合、ホット リロードに使用できるのは JS ビュー、テンプレート、および CSS (ルーター、コントローラー、データストア (バックボーン)) のみです。コレクションとモデル) はまだ構成されていません。データストアを除いて、すべてのファイルがホットリロードされる可能性があると思います。
于 2015-09-21T02:02:34.310 に答える