プログラムを中心とした個人的なメモ用のブログです。 タイトルは迷走中。
内容の保証はできませんのであしからずご了承ください。

ラベル JavaScript の投稿を表示しています。 すべての投稿を表示
ラベル JavaScript の投稿を表示しています。 すべての投稿を表示

2021/11/12

Node.js で `Unexpected end of json input` のエラーがでた

event_note

2021/09/15

[Node.js] Windows で子プロセスを終了させる方法

event_note

2021/09/07

[JavaScript] JSON の内容を文字列で出力する

event_note

2021/09/03

[JavaScript] map で配列の値とインデックスを同時に取得する

event_note

2021/08/27

[Node.js] SQLite + Sequelize で日時の範囲検索

event_note

2021/08/26

[Node.js] Express で JSON のリクエストを取得する

event_note

2021/08/23

electron で HTTP リクエストを送る

event_note

2021/08/19

[JavaScript] コンストラクタで await したい

event_note

2021/03/17

jQuery Keypad を使ってみた

event_note

2020/07/16

[JavaScript] Minify 時に `Implicit property name must be identifier` というエラーが表示される

event_note

2020/01/27

[JavaScript] 数値の変わった表記

event_note

2019/06/27

JavaScript で Linq

event_note

2018/08/20

AdminLTE のサイドバーが開閉しない

event_note

2015/09/13

Socket.IO送信関数一覧

基本的にサーバーサイドの話。

(クライアントサイドでは、通信相手はサーバーしかいないので、socket.emitしか使用しないはず)

emitはsendに置き換え可能?(その場合、第1引数は不要)

送信相手 使用する関数 備考
クライアントに対して送信 socket.emit(event,message); 自動的にシリアライズ(JSON.stringify()) される(オーバーヘッドがかかる)
socket.json.emit(event,message); JSON形式であることを明示
特定のユーザーに対して送信
(socketsは省略可?)
io.sockets.to(socket.id).emit(event,message);
io.to(socket.id).emit(event,message);
自分を含む全員にブロードキャスト io.sockets.emit(event,message);
io.emit(event,message);
自分以外の全員にブロードキャスト socket.broadcast.emit(event,message); 自動的にシリアライズ(JSON.stringify()) される(オーバーヘッドがかかる)
socket.json.broadcast.emit(event,message); JSON形式であることを明示
ルーム内の自分を含む全員にブロードキャスト
(socketsは省略可?)
io.sockets.to(roomID).emit(event,message);
io.sockets.in(roomID).emit(event,message);
ルーム内の自分以外の全員にブロードキャスト socket.broadcast.to(roomID).emit(event,message);
ルーム内の特定のユーザーに送信 ----- ソケットIDがわかるはずなので、特定のユーザーに対して送信する場合と同じでよいはず

JavaScriptのデバッグ方法(ブラウザ)

event_note

クライアントサイドの話。
サーバーサイドの話はNode.jsのページを参照。

Firefox

デバッガの起動はCtrl+Shift+i、またはF12を押す。
動的に生成されたソースを参照したい場合は、右クリック→「選択範囲のソースを表示」でOK。(Ctrl+Aで全選択してからやるとよい)

Chrome

デバッガの起動はCtrl+Shift+i、またはF12を押す。
動的に生成されたソースを参照したい場合は、アドオンを追加する必要がある(?)。

パネルの説明

  • Elementsパネル(HTML・CSSの確認と編集)
  • Resourcesパネル(ネットワークの監視)
  • Scriptsパネル(JavaScriptのデバッグ)
  • Profilesパネル(JavaScriptのパフォーマンスチェック)
  • Storageパネル(Cookie, localStorageの確認・編集)
  • Timelineパネル(レンダリングを含めたパフォーマンスチェック)
  • Auditsパネル(YSlowのようなパフォーマンスチェックツール)
  • Consoleパネル(JavaScriptのコマンドラインツール)

デバッガのショートカット

ショートカット 動作 備考
Ctrl + Shift + c DOMインスペクタモード
(HTMLの要素ごとに解析できるやつ)
デベロッパーツールを開いてない状態で実行する。
デベロッパーツールを開いている状態であれば、Webページ上の解析したい要素の上で右クリックして「要素を検証」を選択。
F8 スクリプトの実行・停止
F10 ステップオーバー 現在の行を実行し、次の行に進む。
もし現在の行に関数呼び出しがあったとしても、関数へはジャンプせずに関数の処理を行い、次の行に進む。
ただし、次の行に進むだけで、その行が実行されるわけではない。
F11 ステップイン 現在の行を実行し、次の行に進む。
もし現在の行に関数呼び出しがあった場合、その関数にジャンプし、呼び出した関数の内部に進む。
Shift + F10 ステップアウト 現在の行の呼び出し元の関数が終了するまで実行し、関数を抜ける。

参考URL

http://shim0mura.hatenadiary.jp/entry/20111231/1325357395
https://app.codegrid.net/entry/breakpoint-1