タグ別アーカイブ: JavaScript

Node.jsとWebSocketでリアルタイムチャットをやってみた

Node.jsでWebサーバを構築するメリット

Node.jsでは、リクエストを処理するときに、イベントループというモデルを採用しており、シングルスレッドで対応します。
イベントが発生するとイベントキューに積まれていき、イベントループで積まれているイベントを処理していきます。Node.jsでWebサーバを構築すると、多重プロセスモデルに比べて、大量のクライアントからの接続を維持できるというメリットがあります。
その反面、CPUを大量に消費するような重たい処理を行うとイベントループが止まってしまうので、そのような処理をするときにはNode.jsは向いていません。

event-model

そんな感じで、Node.jsの大量のクライアントからの接続を維持できるというメリットをいかしWebSocketを使って、リアルタイムチャットをつくってみた。

続きを読む

nodebrewでnodeとnpmのバージョン管理しよう(Mac編)

最近nodejsのアップデートの頻度が激しいですね。
nodejsとnpmのそのもののバージョンを管理するnodebrewは結構便利ですので、紹介します。

nodebrewをインストール

Homebrew経由でnodebrewをインストールし、セットアップで.nodebrewを作成します。

$ brew install nodebrew
$ nodebrew setup

次に、nodebrewのパスを通します
.bash_profileもしくは.zshrcに以下の文を追加)

export PATH=$HOME/.nodebrew/current/bin:$PATH

そしてお決まりのやつを実行(設定を有効化)

$ source .bash_profile( or .zshrc)

最後にパスが通っているかを確認
続きを読む

JavaScriptのnew演算子を使わないオブジェクト生成法

JavaScriptはプロトタイプベースのオブジェクト指向だといわれてるが、他言語(クラスベース)と同様にnew演算子を使ってオブジェクトを作ることが可能なのですが、newが原因でバグを生み出し探しまわるのに時間をかけるはめになってしまうなんてことも。。。

newがなぜいけないのかという解説は、別のところにまかせて今回は、Object.createメソッドを使ったオブジェクトの生成とその一歩先をいったオブジェクトの生成法であるファクトリ関数を作成するところまで紹介します。

続きを読む

clickイベント(jQuery)の罠

clickイベントが動かない

jQueryのclickイベントを使っているとうまく動かないときがある。
元々存在するDOMにclickイベントを設定するときは、期待した通りに動くが、jQueryのappendメソッドなどで後から追加した要素にclickイベントを設定するとクリックをしているのに動かないことがあります。
そういうときは、onメソッドを使うと解決できるので、その方法をご紹介致します。
続きを読む