Серверная часть (node.js):
var http = require('http'),
static = require('node-static'),
server = new static.Server('.');
if (!module.parent) {
http.createServer(accept).listen(8080);
} else {
exports.accept = accept;
}
console.log("Server launched at port 8080");
function accept(req, res) {
if (req.url == '/digits') {
res.writeHead(200, {
'Content-Type': 'text/plain',
'Cache-Control': 'no-cache'
});
var i = 0;
var timer = setInterval(write, 1000);
function write() {
res.write(new Array(1000).join(++i + '') + ' ');
if (i == 9) {
clearInterval(timer);
res.end();
}
}
} else {
server.serve(req, res);
}
}
Запрос формируется по нажатию на кнопку и выводится в div'чик с помощью функции:
function query() {
var req = createRequest(),
output = $('.js-ajax__content');
req.open("GET", "digits", true);
req.send();
var buffer = "", ext = "";
req.onreadystatechange = function () {
if (req.readyState == 3) {
ext = req.responseText.replace(new RegExp(buffer, 'g'), '');
buffer = req.responseText;
output.append(req.readyState + ". " + ext);
}
}
}
На выводе получается
3. 111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222
3. 333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333
3. 444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444
3. 555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555
3. 666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666
3. 777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777
3. 888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
3. 999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
Почему-то при первом срабатывании
onreadystatechange responseText уже содержит массив единиц и двоек, а не как ожидается только единиц. Почему?)))