纯Javascript实现ping功能的方法


Posted in Javascript onMarch 20, 2015

本文实例讲述了纯Javascript实现ping功能的方法。分享给大家供大家参考。具体实现方法如下:

function ping(ip) {
  var img = new Image();
  var start = new Date().getTime();
  var flag = false;
  var isCloseWifi = true;
  var hasFinish = false;
  img.onload = function() {
    if ( !hasFinish ) {
      flag = true;
      hasFinish = true;
      img.src = 'X:\\';
      console.log('Ping ' + ip + ' success. ');
    }
  };
  img.onerror = function() {
    if ( !hasFinish ) {
      if ( !isCloseWifi ) {
        flag = true;
        img.src = 'X:\\';
        console.log('Ping ' + ip + ' success. ');
      } else {
        console.log('network is not working!');
      }
      hasFinish = true;
    }
  };
  setTimeout(function(){
    isCloseWifi = false;
    console.log('network is working, start ping...');
  },2);
  img.src = 'http://' + ip + '/' + start;
  var timer = setTimeout(function() {
    if ( !flag ) {
      hasFinish = true;
      img.src = 'X://';
      flag = false ;
      console.log('Ping ' + ip + ' fail. ');
    }
  }, 1500);
}
ping('www.google.com:80');

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
jq实现左滑显示删除按钮,点击删除实现删除数据功能(推荐)
Aug 23 Javascript
Bootstrap实现带暂停功能的轮播组件(推荐)
Nov 25 Javascript
解决拦截器对ajax请求的拦截实例详解
Dec 21 Javascript
vue中for循环更改数据的实例代码(数据变化但页面数据未变)
Sep 15 Javascript
原生JS进行前后端同构
Apr 22 Javascript
讲解vue-router之什么是编程式路由
May 28 Javascript
关于vue v-for循环解决img标签的src动态绑定问题
Sep 18 Javascript
Angular刷新当前页面的实现方法
Nov 21 Javascript
TypeScript之调用栈的实现
Dec 31 Javascript
Vue中keep-alive组件作用详解
Feb 04 Javascript
node.JS的crypto加密模块使用方法详解(MD5,AES,Hmac,Diffie-Hellman加密)
Feb 06 Javascript
四十九个javascript小知识实用技巧
Nov 20 Javascript
jQuery找出网页上最高元素的方法
Mar 20 #Javascript
jQuery实现平滑滚动到指定锚点的方法
Mar 20 #Javascript
jQuery在页面加载时动态修改图片尺寸的方法
Mar 20 #Javascript
jQuery实现页面滚动时动态加载内容的方法
Mar 20 #Javascript
JavaScript控制图片加载完成后调用回调函数的方法
Mar 20 #Javascript
jQuery UI插件自定义confirm确认框的方法
Mar 20 #Javascript
js使用split函数按照多个字符对字符串进行分割的方法
Mar 20 #Javascript
You might like
解析php DOMElement 操作xml 文档的实现代码
2013/05/10 PHP
PHP+sqlite数据库操作示例(创建/打开/插入/检索)
2016/05/26 PHP
CI框架表单验证实例详解
2016/11/21 PHP
PHP微信网页授权的配置文件操作分析
2019/05/29 PHP
laravel5 Eloquent 实现事务方式
2019/10/21 PHP
推荐自用 Javascript 缩图函数 (onDOMLoaded)……
2007/10/23 Javascript
用javascript获取当页面上鼠标光标位置和触发事件的对象的代码
2009/12/09 Javascript
jquery 查找iframe父级页面元素的实现代码
2011/08/28 Javascript
无缝滚动js代码通俗易懂(自写)
2013/06/19 Javascript
使用jQuery实现验证上传图片的格式与大小
2014/12/03 Javascript
浅析在javascript中创建对象的各种模式
2016/05/06 Javascript
将angular.js项目整合到.net mvc中的方法详解
2017/06/29 Javascript
微信小程序 五星评分的实现实例
2017/08/04 Javascript
vue-router2.0 组件之间传参及获取动态参数的方法
2017/11/10 Javascript
JS正则表达式常见用法实例详解
2018/06/19 Javascript
移动端(微信等使用vConsole调试console的方法
2019/03/05 Javascript
小程序开发踩坑:页面窗口定位(相对于浏览器定位)(推荐)
2019/04/25 Javascript
eslint 的三大通用规则详解
2019/05/16 Javascript
vue App.vue中的公共组件改变值触发其他组件或.vue页面监听
2019/05/31 Javascript
layui radio点击事件实现input显示和隐藏的例子
2019/09/02 Javascript
前端vue-cli项目中使用img图片和background背景图的几种方法
2019/11/13 Javascript
Python创建文件和追加文件内容实例
2014/10/21 Python
非递归的输出1-N的全排列实例(推荐)
2017/04/11 Python
pytorch 调整某一维度数据顺序的方法
2018/12/08 Python
Python Django的安装配置教程图文详解
2019/07/17 Python
django模型动态修改参数,增加 filter 字段的方式
2020/03/16 Python
Python3标准库之dbm UNIX键-值数据库问题
2020/03/24 Python
IntelliJ 中配置 Anaconda的过程图解
2020/06/01 Python
在vscode中启动conda虚拟环境的思路详解
2020/12/25 Python
matplotlib部件之矩形选区(RectangleSelector)的实现
2021/02/01 Python
文秘专业自荐信
2013/10/14 职场文书
小学爱国卫生月活动总结
2014/06/30 职场文书
优秀员工推荐材料
2014/12/20 职场文书
2015年环卫工作总结
2015/04/28 职场文书
幼师自荐信范文(2016推荐篇)
2016/01/28 职场文书
导游词之江西赣州
2019/10/15 职场文书