我已经通过StackOverflow进行了搜索,并看到了有关如何执行此操作的各种主题,但没有任何与我的特定情况有关的内容.我正在编写(用于类)移动"应用程序"(使用HTML5,CSS,jQuery).它最终将成为一个独立的"应用程序",它将包含所有所需文件的本地副本.在我的一个页面上,我有一个提交表单,由于用户在离线时无法提交表单,我希望将该页面重定向到自定义404页面.
我只是在寻找是否有办法在jQuery中实现这一点,因为我还没有找到任何东西.
谢谢
Bot*_*Bot 22
你可以用
if (navigator.onLine) {
// I'm online so submit the form.
}
Run Code Online (Sandbox Code Playgroud)
Pet*_*rel 22
实际上你根本不需要jQuery.HTML5本身为在线/离线条件下运行的应用程序提供了一个简洁的工具 - 缓存清单.缓存清单是标记manifest
属性中引用的纯文本文件<html>
:
<html manifest="cache.manifest">
Run Code Online (Sandbox Code Playgroud)
此清单文件的内容告诉浏览器,哪些资源需要在线条件来执行function(NETWORK
),哪些文件需要cache(CACHE
)以及在offline(FALLBACK
)时请求网络资源时要执行的操作.
CACHE MANIFEST
# the above line is required
NETWORK:
*
FALLBACK:
* error404.html
CACHE:
index.html
about.html
help.html
# Plus all other resources required to make it look nice
style/default.css
images/logo.png
images/backgound.png
Run Code Online (Sandbox Code Playgroud)
使用清单时,浏览器首先查询清单,并且在没有任何脚本的情况下,根据在线或离线进行相应的操作.
http://dev.w3.org/html5/spec-preview/offline.html#manifests
更新:
请注意响应内容类型的关键要求.纯文本根本不起作用.
必须使用
text/cache-manifest
MIME类型提供清单.
http://dev.w3.org/html5/spec-preview/offline.html#writing-cache-manifests
另请注意,清单中未列出的所有URL都会因此而被阻止加载.这就是为什么我用通配符(*
)修复上面的清单以允许"其余".这可能会帮助您开始.
Jas*_*per 17
您可以查看navigator.onLine
酒店或收听offline
/ online
events:
$(document).on('offline online', function (event) {
alert('You are ' + event.type + '!');
});
Run Code Online (Sandbox Code Playgroud)
资料来源:http://www.html5rocks.com/en/mobile/workingoffthegrid/
以下是这些活动的一些MDN文档:https://developer.mozilla.org/en/Online_and_offline_events
我自己并不熟悉这些事件,但如果您阅读上述链接,您应该找到很多好的信息.
归档时间: |
|
查看次数: |
34795 次 |
最近记录: |