0

私のアプリは単に入力を取り込んで配列に保存してから削除しますが、1234567890 を順番に入力すると次のようになります

 Express server listening on port 3000
 1 1
 0
 12 1
 0
 123 1
 0
 1234 1
 0
 12345 1
 0
 123456 1
 0

その後、これを表示する前に約 3 分間停止します

 1234567 1
 0
 12345678 1
 0 
 123456789 1
 0
 1234567890 1
 0

なぜ止まるの?なんらかのタイムアウトが発生しているか、何らかのリスナーが適切に処理されていないようです

 var express      = require('express')
 , http         = require('http')
 , path         = require('path')
 , fs           = require('fs');

 var app = express();

 app.configure(function(){
      app.set('port', process.env.PORT || 3000);
      app.set('views', __dirname + '/views');
      app.set('view engine', 'jade');
      app.use(express.favicon());
      app.use(express.logger('dev'));
      app.use(express.bodyParser());
      app.use(express.methodOverride());
      app.use(app.router);
      app.use(express.static(path.join(__dirname, 'public')));
 });

 var queries = new Array();

 function printAndShiftArray() {
      console.log(queries + " " + queries.length);
  if (queries.length == 0) {
       console.log("array is empty");
  } else {
       queries.shift();
  }
       console.log(queries + " " + queries.length);
 }

 app.get('/', function (req, res) {
     res.sendfile(__dirname + '/index.html');
 });

 app.post('/search', function(req, res) {
 input = req.param('letter');
 queries.push(input);
 printAndShiftArray();
 }); 

 http.createServer(app).listen(app.get('port'), function(){
     console.log("Express server listening on port " + app.get('port'));
 });

これで /search API を呼び出します

        $(document).ready(function() {
            $('#letter').on("keyup", function() {
                letter = $('#letter').val();
                $.post("/search", { letter: letter}, function(data) {
                    $('#status').html(data);
                });
            });
        });
4

1 に答える 1

2

ハンドラーで行う必要がありres.end('')ます。/search

を処理するときに応答を終了していません/search。したがって、「6」を押した時点でブラウザから 6 つの同時要求が開かれ、jQuery はそれ以上送信しません。次に、これらのリクエストがタイムアウトになるまで 3 分間待機し (エラーが表示されますが、表示されません)、残りの 4 を送信します。

于 2013-08-05T04:21:07.897 に答える