页面实时获取数据
在当今数字化交互日益频繁的时代,前端开发面临着诸多挑战,其中任务执行耗时久以及如何实时获取数据便是极为常见且棘手的问题。想象一下,当用户在网页上触发某个操作,比如提交一份复杂的表单申请、查询海量数据的检索结果,又或是等待一个长时间运行的后台任务反馈,他们往往被迫陷入漫长的等待之中,盯着屏幕发呆,期望着那个迟迟未到的回应。而这背后,正是前端实时获取数据的困境在作祟。
如何使得后端数据可以实时推送到前端呢?下面介绍几种方案
方案一:轮询
这是最容易理解的一种方式。前端实现一个定时器,让客户端每隔较短固定时间就向服务端发起请求,服务器判断任务还没跑完,就回复一个未跑完,定时器一直到服务器回复任务完成并把数据返回回来。
短轮询的优劣势一目了然。优势在于,容易理解、实现过程简便,同时兼容性又很好,在几乎所有支持 HTTP 协议
的浏览器及服务器环境都能很好的运行短轮询。不过,缺点也非常显而易见。当按照很短的固定时间间隔去频繁请求数据,如果此时的数据并未更新,这些请求就成了无效请求,但是每一个无效的请求都得完成 HTTP 建立连接的一系列流程,像三次握手
、 四次挥手
,这无疑造成了不必要的资源浪费。同时也是由于按固定间隔请求,数据更新也可能会存在延迟的现象,在要求实时性的场景下就不满足了。