轮询(polling)
轮询概念:是指不管服务器端有没有更新,客户端(通常是指浏览器)都定时的发送请求进行查询。不管结果如何,客户端处理完第一次请求后到下一个定时时间点将继续下一轮的轮询。
**缺点:**当客户端以固定频率向服务器发起请求的时候,服务器端的数据可能并没有更新,这样会带来很多无谓的网络传输。当轮询时间过长则无法接收到更新数据。
**优点:**web应用场景可作为即时通讯类的解决方案,客户端在每次固定时间自动发起请求可做到实时更新数据。操作简单,无需做更多更改。
Example:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>实时获取时间</title>
</head>
<body>
<script>
//每隔一秒钟客户端发起一次请求以达到实时更新
setInterval(function(){
var xhr = new XMLHttpRequest();
xhr.open('GET','/polling');
xhr.onload=function(e){
document.querySelector('body').innerHTML='时间:'+e.target.response
}
xhr.send()
},1000)
</script>
</body>
</html>
const Koa = require('koa')
const Router = require('koa-router')
const moment = require('moment') //格式化日期轻量级js库,返回一个格式化日期的虚拟属性
const serve = require('koa-static')
const app = new Koa();
const router = new Router()
app.use