JQuery Mobile 检测到是否有互联网连接

发布于 2024-11-01 07:02:38 字数 38 浏览 2 评论 0原文

通过网络应用程序检测我的手机是否有互联网连接的最佳方法是什么?

What is the best way to detect if there's internet connection or not on my mobile via my web app?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

兲鉂ぱ嘚淚 2024-11-08 07:02:38

不需要为此编写任何代码——它是 HTML5 API 的一部分。检查 window.navigator.onLine 的值 - 如果用户离线,则该值将为 false

http://www.whatwg.org /specs/web-apps/current-work/multipage/offline.html#browser-state

There's no code necessary for this -- it's part of the HTML5 API. Check the value of window.navigator.onLine -- it will be false if the user is offline.

http://www.whatwg.org/specs/web-apps/current-work/multipage/offline.html#browser-state

天煞孤星 2024-11-08 07:02:38

一个选项可能是更改 Ajax 设置以添加特定的 timeout,然后添加一个 error 处理程序来查找 textStatus(第二个参数)为 'timeout'

当发生超时时,要么互联网连接不稳定,要么您的网站已关闭。


使用 ajaxSetup 为所有请求设置选项默认值:

$.ajaxSetup({
    timeout: 1, // Microseconds, for the laughs.  Guaranteed timeout.
    error: function(request, status, maybe_an_exception_object) {
        if(status != 'timeout')
            alert("YOU BROKE IT");
        else
            alert("OH NOES TEH INTARWEBS ARE DOWN!!!!!1one");
    }
});

An option might be changing the Ajax settings to add a specific timeout, then add an error handler that looks for a textStatus (second argument) of 'timeout'.

When a timeout occurs, either internet connectivity is spotty or your site is down.


Using ajaxSetup to set option defaults for all requests:

$.ajaxSetup({
    timeout: 1, // Microseconds, for the laughs.  Guaranteed timeout.
    error: function(request, status, maybe_an_exception_object) {
        if(status != 'timeout')
            alert("YOU BROKE IT");
        else
            alert("OH NOES TEH INTARWEBS ARE DOWN!!!!!1one");
    }
});
温折酒 2024-11-08 07:02:38

用简单的 JS 代码就可以做到这一点,因为所有特色设备都不支持 JS
然而对于基于网络的应用程序来说,这是需要使用的最少代码

online = window.navigator.onLine;
if (navigator.onLine) {
  alert('you are online');
} else {
  alert('you are offline');
}

in simple JS code this can done, causation all featured devices not have JS supported
however for web-based application this is very minimum code to use

online = window.navigator.onLine;
if (navigator.onLine) {
  alert('you are online');
} else {
  alert('you are offline');
}
雄赳赳气昂昂 2024-11-08 07:02:38

如果你想每 X 秒检查一次连接。

        $(document).ready(function() {
            setInterval(function(){
                var isOnline = navigator.onLine;
                if (isOnline) {
                    console.log("Connected");
                }
                else {
                    console.log("Not Connected");
                }
            }, 30000); // 10000 = 10 seconds, check for connection every 30 seconds
        });

if you want to check every X seconds the connection.

        $(document).ready(function() {
            setInterval(function(){
                var isOnline = navigator.onLine;
                if (isOnline) {
                    console.log("Connected");
                }
                else {
                    console.log("Not Connected");
                }
            }, 30000); // 10000 = 10 seconds, check for connection every 30 seconds
        });
薄荷梦 2024-11-08 07:02:38

如果您想要比 window.navigator.onLine 更具兼容性、可靠性和可定制性的东西,请尝试我的 jQuery 插件: http: //tomriley.net/blog/archives/111

If you want something with more compatibility, reliability and customisability than window.navigator.onLine, try my jQuery plugin: http://tomriley.net/blog/archives/111

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文