javascript Barebones Express应用程序基本上可以从一个请求中获得多个响应(进度)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript Barebones Express应用程序基本上可以从一个请求中获得多个响应(进度)相关的知识,希望对你有一定的参考价值。
const express = require('express');
const logger = require('morgan');
const app = express();
app.use(logger('dev'));
app.get('/', function (req, res) {
res.status(200).send(`
<p>
Open the devtools console
</p>
<script>
let currentStreamIndex = 0;
const xhr = new XMLHttpRequest();
xhr.open('GET', 'http://localhost:7897/some-stream', true);
xhr.onprogress = function() {
const resText = xhr.responseText;
console.log(\`CHUNK: \${resText.substr(currentStreamIndex, resText.length)}\`);
currentStreamIndex = resText.length
}
xhr.send();
</script>
`);
});
app.get('/some-stream', function (req, res) {
res.writeHead(200, {
'Content-Type': 'application/json',
'Transfer-Encoding': 'chunked'
});
// Heartbeat every 30s to keep-alive
setInterval(function() {
res.write(' \n');
res.emit('drain');
}, 30 * 1000);
setInterval(function() {
res.write(JSON.stringify({ foo: 9999 * Math.random() }) + '\n');
res.emit('drain');
}, 3 * 1000);
});
const port = 7897;
app.listen(port, function () {
console.log(`Server listening on ${port}`);
});
以上是关于javascript Barebones Express应用程序基本上可以从一个请求中获得多个响应(进度)的主要内容,如果未能解决你的问题,请参考以下文章
html Barebones Bootstrap
html D3.js:Barebones十字准线
奇怪的javascript运算符:expr >>> 0 [重复]
javascript Immediately_Invoked_Function_Expression
apache_conf Barebones Backbone路由器示例,用于具有本地URL的Apache站点,例如http:// local5 / backbone-router。
JavaScript 如何解析链式三元表达式?