纯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 相关文章推荐
ExtJS 工具栏 分页事件参数
Mar 05 Javascript
javascript分页代码(当前页码居中)
Sep 20 Javascript
详解JavaScript函数绑定
Aug 18 Javascript
原生JavaScript编写俄罗斯方块
Mar 30 Javascript
11种ASP连接数据库的方法
Sep 18 Javascript
JAVASCRIPT代码编写俄罗斯方块网页版
Nov 26 Javascript
封装好的javascript前端分页插件pagination
Jan 04 Javascript
网站发布后Bootstrap框架引用woff字体无法正常显示的解决方法
Nov 24 Javascript
基于Vue的文字跑马灯组件(npm 组件包)
May 24 Javascript
详解vue中引入stylus及报错解决方法
Sep 22 Javascript
浅谈如何使用webpack构建多页面应用
May 30 Javascript
vue日历/日程提醒/html5本地缓存功能
Sep 02 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常用技术文之文件操作和目录操作总结
2014/09/27 PHP
php取得字符串首字母的方法
2015/03/25 PHP
php str_getcsv把字符串解析为数组的实现方法
2017/04/05 PHP
PHP文件管理之实现网盘及压缩包的功能操作
2017/09/20 PHP
用js得到网页中所有的div的id
2020/10/19 Javascript
Javascript打印网页部分内容的脚本
2008/11/17 Javascript
PHP abstract与interface之间的区别
2013/11/11 Javascript
简单的Jquery遮罩层代码实例
2013/11/14 Javascript
jsp网页搜索结果中实现选中一行使其高亮
2014/02/17 Javascript
JavaScript代码复用模式详解
2014/11/07 Javascript
分析了一下JQuery中的extend方法实现原理
2015/02/27 Javascript
深入理解JavaScript系列(26):设计模式之构造函数模式详解
2015/03/03 Javascript
javascript iframe跨域详解
2016/10/26 Javascript
jQuery EasyUI Draggable拖动组件
2017/03/01 Javascript
bootstrap 点击空白处popover弹出框隐藏实例
2018/01/24 Javascript
微信小程序实现MUI数字输入框效果
2018/01/31 Javascript
javascript与PHP动态往类中添加方法对比
2018/03/21 Javascript
jQuery实现鼠标移到某个对象时弹出显示层功能
2018/08/23 jQuery
解决layui checkbox 提交多个值的问题
2019/09/02 Javascript
谈谈我在vue-cli3中用预渲染遇到的坑
2020/04/22 Javascript
Python 从列表中取值和取索引的方法
2018/12/25 Python
Django uwsgi Nginx 的生产环境部署详解
2019/02/02 Python
Python批量修改图片分辨率的实例代码
2019/07/04 Python
HTML5中新标签和常用标签详解
2014/03/07 HTML / CSS
HTML页面中添加Canvas标签示例
2015/01/01 HTML / CSS
英国设计师泳装、沙滩装和比基尼在线精品店:Beach Cafe
2019/08/28 全球购物
波兰化妆品和护肤品购物网站:eKobieca
2019/08/30 全球购物
编辑硕士自荐信范文
2013/11/27 职场文书
学习全国两会精神心得体会范文
2014/03/17 职场文书
优秀员工演讲稿
2014/05/19 职场文书
终止劳动合同协议书
2014/10/05 职场文书
2015年化验员工作总结
2015/04/10 职场文书
爱护环境卫生倡议书
2015/04/29 职场文书
党支部季度考核意见
2015/06/02 职场文书
PyTorch device与cuda.device用法
2022/04/03 Python
vue3 自定义图片放大器效果的示例代码
2022/07/23 Vue.js