纯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 相关文章推荐
Js 订制自己的AlertBox(信息提示框)
Jan 09 Javascript
javascript 得到变量类型的函数
May 19 Javascript
基于JavaScript如何实现私有成员的语法特征及私有成员的实现方式
Oct 28 Javascript
基于Bootstrap的后台管理面板 Bootstrap Metro Dashboard
Jun 17 Javascript
JS实现兼容各种浏览器的高级拖动方法完整实例【测试可用】
Jun 21 Javascript
VueJS全面解析
Nov 10 Javascript
vue+element实现批量删除功能的示例
Feb 28 Javascript
Angular父组件调用子组件的方法
Apr 02 Javascript
animate.css在vue项目中的使用教程
Aug 05 Javascript
elementui之el-tebs浏览器卡死的问题和使用报错未注册问题
Jul 06 Javascript
vue中使用WX-JSSDK的两种方法(推荐)
Jan 18 Javascript
JavaScript实现跟随鼠标移动的盒子
Jan 28 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
简单的过滤字符串中的HTML标记
2006/12/25 PHP
PHP开发微信支付的代码分享
2014/05/25 PHP
PHP中使用asort进行中文排序失效的问题处理
2014/08/18 PHP
PHP GD库生成图像的几个函数总结
2014/11/19 PHP
php array_merge_recursive 数组合并
2016/10/26 PHP
JQuery中根据属性或属性值获得元素(6种情况获取方法)
2013/01/17 Javascript
node.js中的events.emitter.removeAllListeners方法使用说明
2014/12/10 Javascript
JavaScript数组对象赋值用法实例
2015/08/04 Javascript
swtich/if...else的替代语句
2015/08/16 Javascript
Node.js+Express配置入门教程详解
2016/05/19 Javascript
jQuery Masonry瀑布流插件使用方法详解
2017/01/18 Javascript
canvas实现图像布局填充功能
2017/02/06 Javascript
浅谈箭头函数写法在ReactJs中的使用
2017/08/22 Javascript
JS实现的全排列组合算法示例
2017/10/09 Javascript
three.js中文文档学习之通过模块导入
2017/11/20 Javascript
vue页面加载时的进度条功能(实例代码)
2020/01/13 Javascript
[00:52]DOTA2第二届亚洲邀请赛预选赛宣传片
2017/01/13 DOTA
[56:42]VP vs RNG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
Python抓取Discuz!用户名脚本代码
2013/12/30 Python
python文件读写操作与linux shell变量命令交互执行的方法
2015/01/14 Python
python使用win32com库播放mp3文件的方法
2015/05/30 Python
Python安装第三方库的3种方法
2015/06/21 Python
Python发送form-data请求及拼接form-data内容的方法
2016/03/05 Python
python3实现公众号每日定时发送日报和图片
2018/02/24 Python
解决Python 使用h5py加载文件,看不到keys()的问题
2019/02/08 Python
Python程序包的构建和发布过程示例详解
2019/06/09 Python
Jupyter Notebook输出矢量图实例
2020/04/14 Python
HTML5之WebGL 3D概述(上)—WebGL原生开发开启网页3D渲染新时代
2013/01/31 HTML / CSS
英国香水店:The Perfume Shop
2017/03/27 全球购物
Belvilla德国:在线预订度假屋
2018/04/10 全球购物
白酒市场开发计划书
2014/01/09 职场文书
招股说明书范本
2014/05/06 职场文书
导游词之安徽巢湖
2019/12/26 职场文书
MySQL 开窗函数
2022/02/15 MySQL
Python if else条件语句形式详解
2022/03/24 Python
redis 解决库存并发问题实现数量控制
2022/04/08 Redis