- イベントドリブンなので大量のrequestを受信しても問題が起きない。(単に停止するという、最悪な状態は発生しないよ、というサービスサイドの要求)
- JavaScriptが基本で、生産性が高い(本当か?)
- 一方、まだバージョンが0.Xの状態で安定性に欠ける(メモリリークもひどい。これは最初の利点とちょっと矛盾しますが)
【現象】
server.on('request', function(req, res) { }
クライアントであるブラウザからの要求(request)のイベントに反応して行う処理を記述する部分ですが、chromeと、IE/FireFoxで動きが異なる。
問題はchromeの方。ページ更新を1回しかしていないのに、2回処理が動いてしまう。
しかもWireSharkで通信内容を調べてみると、node.jsから返信している2回目の内容を画面に反映していない。(従って、連続してページ更新を行うと、1回ごとに2回分の処理が行われるように見える)
但し、送信ボタンを押して処理を行う、というイベント処理では特に2回動くということはなく、chrome/IE/FireFoxとも同じ動きをしています。
WireSharkのログを比較しても、若干違いがあるのはわかるんですが、node.jsがパケットの何をトリガに、このイベントを発生しているのかまだよくわかってないため
少しnode.jsを調べていたら、それらしいhintがみつかりました。そういえばchromeはURL表示欄にFaviconを表示しています。それらはページ更新の際、個別のrequestとしてServerには認識されるそうです。Server処理の方できちんと区別して、試してみて確認しないと。
0 件のコメント:
コメントを投稿