0

私はnode.jsの初心者です。問題がいくつかありますsetTimeout(function(){.....},time);。これは、ローカルサーバーをカールすると正常に動作しますが、Google chrome では期待どおりに動作しません (他のブラウザーはテストしていません)。

私のコードは次のとおりです。

/* simple node.js createserver */

var http = require('http');

http.createServer(function (request, response) {
     response.writeHead(200);
  response.write('Somthing\r\n');

  setTimeout(function(){
        response.end('\n This came out after 5 seconds :) ');
  }, 5000);
   response.write('Hello World\n');
}).listen(8124);



console.log('Server running at http://127.0.0.1:8124/');

curl 127.0.0.1:8124 すべてが期待どおりに機能するとき。しかし、ブラウザでそれをポイントすると、しばらくアイドル状態のままになり(5秒だと思います)、すべてのコンテンツが一度に表示されますか?これは node.js の予想される動作ですか、それとも何か不足していますか? ブラウザは curl のようなことを実行できますか (つまり、最初に 2 行を印刷し、5 秒待ってから別の行を印刷します)?

4

2 に答える 2

1

予想どおりです-ブラウザは、読み込みが完了するまでページを表示することを意図していません(大きなチャンクには例外があると思いますが、ほとんどの場合、これは当てはまります)

于 2013-06-30T17:01:07.680 に答える
1

これを試して

http.createServer(function (request, response)

  response.setHeader('Content-Type', 'text/html; charset=UTF-8');
  response.writeHead(200);
  response.write('Somthing\r\n');

  setTimeout(function(){
    response.end('\n This came out after 5 seconds :) ');
  }, 5000);

  response.write('Hello World\n');
  //No point writing Hello World here as it is written immediately

}).listen(8124);
于 2013-06-30T18:07:46.413 に答える