js实现 ping 函数来检测是否能访问内网环境

实际使用在了cn.costream.site中,项目中的这篇 Issue 是我记录的.

//ping 函数, 检测与内网连接是否能在100ms 内响应. 实测实验室电脑连接内网 ping 为 9-11ms 左右
function ping(ip,timeout,success,callback) {
    var img = new Image()
    var start = new Date().getTime()
    img.src = /^(http)/.test(ip) ? ip + "?t=" + start : "http://" + ip + "?t=" + start
    console.log(img.src)
    var flag = false  //无法访问
    img.onload = function () {
        flag = true
        success()
        console.log('ping ok')
    }
    img.onerror = function () {
        flag = true
        success()
        console.log('ping error')
    }
    var timer = setTimeout(function () {
        if (!flag) {    //如果真的无法访问
            flag = false
            console.log('ping Timeout!')
            callback()
        }
    }, timeout)
}
ping('http://202.114.18.86/icons/powered_by_rh.png',100,success,check)
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,332评论 25 709
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 14,515评论 2 59
  • 演唱:梅朵 曾经有过铭心的苦痛 也曾有过无数的快乐 春去秋来你的温柔依旧 倾心为我付出了所有 人生总会有太多的忧愁...
    余生有味阅读 1,234评论 0 0
  • 鳄鱼法则的意思是:如果一只鳄鱼咬住了你的脚,你如果用手试图把自己的脚挣脱出来,你的手与脚就会同时被鳄鱼咬住,越挣扎...
    方外弋阅读 2,844评论 1 4
  • 小雪一直单着拒绝他人的介绍,除了为孩子考虑,也是因为对婚姻的恐惧。 年轻时的单纯及对恋爱的美好向往让她...
    英子传奇阅读 1,522评论 0 0

友情链接更多精彩内容