如果 Web 应用程序仅仅是一些静态页面的组合,那么通过 cache manifest 缓存资源文件以后,就可以支持离线访问了。但是随着互联网的发展,特别是 Web2.0 概念流行以来,用户的提交的数据渐渐成为互联网的主流。那么在开发支持离线的 Web 应用时,就不能仅仅满足于静态页面的展现,还必需考虑如何让用户在离线状态下也可以操作数据。离线状态时,把数据存储在本地;在线以后,再把数据同步到服务器上。为了做到这一点,开发者首先必须知道浏览器是否在线。HTML5 提供了两种检测是否在线的方式:navigator.online 和 online/offline 事件。
navigator.onLine
navigator.onLine 属性表示当前是否在线。如果为 true, 表示在线;如果为 false, 表示离线。当网络状态发生变化时,navigator.onLine 的值也随之变化。开发者可以通过读取它的值获取网络状态。
online/offline 事件
当开发离线应用时,通过 navigator.onLine 获取网络状态通常是不够的。开发者还需要在网络状态发生变化时立刻得到通知,因此 HTML5 还提供了 online/offline 事件。当在线 / 离线状态切换时,online/offline 事件将触发在 body 元素上,并且沿着 document.body、document 和 window 的顺序冒泡。因此,开发者可以通过监听它们的 online/offline 事件来获悉网络状态。
相关文章
- springboot前端ajax 04 关于后台传的时间和状态在前端的转换
- 【K8S系列】深入解析有状态服务
- SpringBoot+Netty实现TCP客户端实现接收数据按照16进制解析并存储到Mysql以及Netty断线重连检测与自动重连
- 黑马在线教育数仓实战2
- 基于matlab的高精度信号峰值检测算法
- Python深度学习实战:人脸关键点(15点)检测pytorch实现
- SpringBoot+Vue+OpenOffice实现文档管理(文档上传、下载、在线预览)
- 【目标检测 DETR】通俗理解 End-to-End Object Detection with Transformers,值得一品。
- 面向状态机编程:复杂业务逻辑应对之道
- PostgreSQL的idle in transaction连接状态