私のアプリは単に入力を取り込んで配列に保存してから削除しますが、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);
});
});
});