基于Flask:服务器主动向JavaScript推送数据及变量获取方案
桌面应用转浏览器端前后端通信问题解答
问题一:服务器能否主动向网页发送数据?
可以,不需要前端每次发起请求,服务器也能主动推送数据到前端的JavaScript函数,针对你的两种场景,推荐对应的方案:
- WebSocket:适配快速更新数据的场景。它是双向长连接,服务器数据一更新就能立刻推送给前端,前端监听WebSocket的消息事件,直接触发对应JavaScript函数处理新数据,完全满足你让JS优先使用最新数据的需求。
- Server-Sent Events (SSE):适配异步更新数据的场景。这是单向的服务器推送到前端的长连接,实现比WebSocket简单,不需要处理双向通信逻辑,后端数据更新后通过SSE通道推送,前端监听
message事件即可触发函数处理数据。
传统HTTP请求是前端主动发起的“请求-响应”模式,没法实现服务器主动推送,所以必须用这类长连接方案。
问题二:仅获取服务器变量的最佳实现方式?
如果只是获取服务器变量、不需要修改数据,不要用POST方法,最佳方案是使用GET方法:
- GET是HTTP协议中专门用于获取资源的方法,语义清晰,浏览器还会对GET请求做缓存,能提升重复请求的性能。
- 前端可以用
fetch()或者axios发起GET请求,后端对应接口返回JSON格式的变量数据即可,前端直接解析后就能供JavaScript使用。
只有在需要修改服务器数据(比如新增、删除、更新操作)时,才适合使用POST、PUT、DELETE这类方法。
内容的提问来源于stack exchange,提问作者RomaRobot
相关产品推荐
相关产品推荐

