惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

aimingoo的专栏
aimingoo的专栏
Jina AI
Jina AI
WordPress大学
WordPress大学
Recent Announcements
Recent Announcements
G
Google Developers Blog
I
InfoQ
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Google DeepMind News
Google DeepMind News
P
Proofpoint News Feed
MyScale Blog
MyScale Blog
M
MIT News - Artificial intelligence
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
C
Check Point Blog
J
Java Code Geeks
T
Tailwind CSS Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Microsoft Security Blog
Microsoft Security Blog
MongoDB | Blog
MongoDB | Blog
V
Visual Studio Blog
人人都是产品经理
人人都是产品经理
量子位
A
About on SuperTechFans
D
DataBreaches.Net
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知

博客园 - 前端架构师

DSH 插件第二弹生态全景:11 个插件,把 DeepSeek 变成一个完整的 Coding Agent 平台 DSH 插件推荐清单:DeepSeek Harness 必装的 14 个插件 手摸手教你做一个codex桌面宠物 告别信息碎片化!我把 Claude Code、Cursor、MCP 和 Vibe Coding 整理成了一座全能 AI 宝库(建议收藏) Claude Code 源码架构分析 我不是狐狸,我是那Harness Engineering 小龙虾的自我养成之路 vue3+ts添加公共富文本组件 vue watch详解 微信授权没搞过? css3图片防止变形 公众号使用微信sdk的正确姿势 es6手写一个call 同学给我来个手写的new吧 this综合篇 this绑定番外篇之箭头函数绑定 vue中引入公用过滤器? this详解下 012天this详解上 011天之跨域资源共享CORS 010天JSON.stringify()详解 009天之跨浏览器的事件处理程序 使用XHR上传文件要不要了解一下?
web离线应用前提之离线检测
前端架构师 · 2020-03-22 · via 博客园 - 前端架构师

离线web应用就是,设备不能上网情况下仍可以运行的应用。

    开发离线应用需要几个步骤,首先确保知道设备能否上网,以便下一步执行正确的操作。然后应用还能访问一定的资源(图像,css,js),之后这样才能正常工作,最后必须有一块本地空间用于保存数据,无论能否上网都不影响读写。

离线检测:navigator.onLine属性,true表示能上网,false表示设备离线。

支持的浏览器 ie6+,Safari5+,chorme11+ 都已经支持

firefox3+ 和opera10.6+ 支持navigator.online属性,但你必须勾选,菜单项-》web 开发人员(设置)-》脱机工作 才能让浏览器正常工作。

由于存在兼容问题,单独使用navigator.online属性不能确定网络是否连通,即便如此,在请求发生错误的情况下。检测这个属性仍然管用。实例如下:

if(navigator.online){
    //正常工作
} else {
    //执行离线状态时的任务
}

除了navigator.online 属性之外,为了更好的确定网络是否可用,html5还定义了两个事件:online 和offline,当网络从离线变为在线时,或从在线变为离线时候触发:

EventUtil.addHandler(window,'online',function() {
    alert('online')
})

EventUtil.addHandler(window,'offline',function() {
    alert('offline')
})

扫码加群,每日更新一篇前端技术文章一起成长。