纯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 相关文章推荐
增强的 JavaScript 的 trim 函数的代码
Aug 13 Javascript
Firefox window.close()的使用注意事项
Apr 11 Javascript
使用IE6看老赵的博客 jQuery初探
Jan 17 Javascript
JavaScript去掉数组中的重复元素
Jan 13 Javascript
我的Node.js学习之路(三)--node.js作用、回调、同步和异步代码 以及事件循环
Jul 06 Javascript
jQuery实现流动虚线框的方法
Jan 29 Javascript
编写高质量JavaScript代码的基本要点
Mar 02 Javascript
js实现图片加载淡入淡出效果
Apr 07 Javascript
vue cli使用绝对路径引用图片问题的解决
Dec 06 Javascript
解决vue的变量在settimeout内部效果失效的问题
Aug 30 Javascript
详解es6新增数组方法简便了哪些操作
May 09 Javascript
Webpack的Loader和Plugin的区别
Nov 09 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编程过程中需要了解的this,self,parent的区别
2009/12/30 PHP
php生成html文件方法总结
2014/12/01 PHP
PHP中实现接收多个name相同但Value不相同表单数据实例
2015/02/03 PHP
yii的入口文件index.php中为什么会有这两句
2016/08/04 PHP
PHP实现接收二进制流转换成图片的方法
2017/01/10 PHP
js 分栏效果实现代码
2009/08/29 Javascript
JavaScript 动态创建VML的方法
2009/10/14 Javascript
9个JavaScript评级/投票插件
2010/01/18 Javascript
jquery的extend和fn.extend的使用说明
2011/01/09 Javascript
js为数字添加逗号并格式化数字的代码
2013/08/23 Javascript
jQuery动态修改超链接地址的方法
2015/02/13 Javascript
JavaScript使用Max函数返回两个数字中较大数的方法
2015/04/06 Javascript
Jquery解析json字符串及json数组的方法
2015/05/29 Javascript
js 右侧浮动层效果实现代码(跟随滚动)
2015/11/22 Javascript
javascript+HTML5自定义元素播放焦点图动画
2016/02/21 Javascript
JavaScript 字符串数字左补位,右补位,取固定长度,截位扩展函数代码
2017/03/25 Javascript
nodejs个人博客开发第一步 准备工作
2017/04/12 NodeJs
Three.js中网格对象MESH的属性与方法详解
2017/09/27 Javascript
JS原生带缩略图的图片切换效果
2018/10/10 Javascript
Vue将props值实时传递 并可修改的操作
2020/08/09 Javascript
Python中暂存上传图片的方法
2015/02/18 Python
Python可跨平台实现获取按键的方法
2015/03/05 Python
Python文件读写保存操作的示例代码
2018/09/14 Python
通过cmd进入python的实例操作
2019/06/26 Python
python使用flask与js进行前后台交互的例子
2019/07/19 Python
基于Python实现ComicReaper漫画自动爬取脚本过程解析
2019/11/11 Python
Python 实现网课实时监控自动签到、打卡功能
2020/03/12 Python
浅谈pymysql查询语句中带有in时传递参数的问题
2020/06/05 Python
北美女性服装零售连锁店:maurices
2019/06/12 全球购物
经典c++面试题二
2015/08/14 面试题
个人党性剖析材料
2014/02/03 职场文书
《纸船和风筝》教学反思
2014/02/15 职场文书
副校长竞聘演讲稿
2014/09/01 职场文书
2015新年寄语大全
2014/12/08 职场文书
“5.12”护士节主持词
2015/07/04 职场文书
聊一聊Redis与MySQL双写一致性如何保证
2021/06/26 Redis