`
jcyanfan
  • 浏览: 71691 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

ajax异步判断网站是否可以访问到的解决方法

阅读更多
function getXMLHttpRequest(){
  var client = getXMLHttpRequestFromIE();
   if(client == null){
        client = new XMLHttpRequest();
   }
  return client;
}

function getXMLHttpRequestFromIE(){
  var namePrefixes = ["Msxml3","Msxml2","Msxml","Microsoft"];
  for(var i = 0; i < namePrefixes.length; i++){
       try{
           var name = namePrefixes[i] + ".XMLHTTP";
           return new ActiveXObject(name);
       }catch(e){
       }
  }
  return null;
}
var client = null;
//是否可以访问
var isRun = false;
//返回值
var stateString="";
//请求url的网站
function connUrl(url){
	client = getXMLHttpRequest();
	var actionURL = convertURL(url);
	try{
		client.open("GET", actionURL, true);
		client.onreadystatechange = callBack;
		client.send(null);
	}catch(e){}
	finally{
	}
}
function callBack(){
	if(client.readyState == 4){
		stateString = client.responseText;
		if(stateString && client.status==200)
			isRun = true;
	}
}
//是否可达
function isReach(url){
	connUrl(url);
	return isRun;
}
//给url地址增加时间戳,骗过浏览器,不读取缓存    
function convertURL(url) {    
        //获取时间戳    
        var timstamp = (new Date()).valueOf();    
        //将时间戳信息拼接到url上
        if (url.indexOf("?") >= 0) {    
                url = url + "&t=" + timstamp;    
        } else {    
                url = url + "?t=" + timstamp;    
        }    
        return url;    
}
//因为是异步,先调用,此时isRun的值是false
isReach("http://www.baidu.com");
//3秒钟后判断isRun的值,如果为false认为网站不可达,类似超时时间
setTimeout(function(){   
		//alert(stateString); 
		//alert(isRun);
		if(isRun==true){
			document.getElementById("ceshi").innerText = "网站是通的!";
		}else{
			document.getElementById("ceshi").innerText = "网站不通!";
		}
	},3000);

 

<div id="ceshi"></div>

 

0
1
分享到:
评论

相关推荐

    ajax 异步注册判断用户名存不存在

    ajax异步访问数据库

    浅谈Ajax跨域Session和跨域访问

    任务是这样的的,支付宝的页面返回notify页面(这个页面是异步访问的),而我的C#处理有一个处理模块,需要判断如果是已经登录则加积分之类的操作,结果老是获取不到session数据,可是明明登录了啊。这里的误区是,...

    ajax代理程序,自动判断字符编码

    由于ajax在跨域的访问上有问题,目前最好的方法是做代理.写了个代理程序和心得 为了做ajax的代理,研究了下服务器端的xmlhttp并和客户端的ajax中的xmlhttp做了个比较,后台代码是asp的 服务器端的xmlhttp也就是asp小偷...

    JAVA上百实例源码以及开源项目

    像坐标控制、旋转矩阵、定时器、生成图像、数据初始化、矩阵乘法、坐标旋转、判断是否是顺时针方向排列、鼠标按下、放开时的动作等,都可在本源码中得以体现。 Java编写的显示器显示模式检测程序 2个目标文件 内容...

    PHP 解决session死锁的方法

    (主要是用户登录判断需要更新session)当PHP 处理大数据量操作时 不能及时操作完成 这时候又有访问其他控制器或者异步请求时候会造成session 死锁现象和同事探讨了下 可使用 session_write_close() 解决此问题复制...

    java开源包4

    使用该标记库,利用 Google 为你的网站提供网站查询,并且可以直接在你的网页里面显示搜查的结果。 github-java-api github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache ...

    网钛CMS PHP版(内置小刀模板) v3.82

    [插件]修复伪静态路径时,手机版路径出现访问不到的BUG(WAP手机版 插件) [插件]修复简易小论坛 网页关键词和描述,没走 论坛参数设置 里的设定(简易小论坛 插件) [插件]修复采集参数设置点保存出现错误的BUG...

    ECMAScript 2018快速入门 高清完整PDF

    8.1.4判断某个值是否存在 68 8.1.5遍历 68 8.1.6返回元素总数 68 8.1.7转换为数组 68 8.2WeakSet 68 8.2.1基本语法 69 8.2.2添加和删除元素 69 8.2.3判断某个值是否存在 69 8.2.4不可遍历 69 8.3Map 69 8.3.1基本...

    网钛CMS PHP版(内置小刀模板) v3.82.rar

    8.[插件]修复伪静态路径时,手机版路径出现访问不到的BUG(WAP手机版 插件) 9.[插件]修复简易小论坛 网页关键词和描述,没走 论坛参数设置 里的设定(简易小论坛 插件) 10.[插件]修复采集参数设置点保存出现错误...

    java面试题

    Overloaded的方法是否可以改变返回值的类型? 10 12. error和exception有什么区别? 11 13. 同步和异步有何异同,在什么情况下分别使用他们?举例说明。 11 14. 简述synchronized和java.util.concurrent.locks.Lock的...

    asp.net知识库

    如何判断ArrayList,Hashtable,SortedList 这类对象是否相等 帮助解决网页和JS文件中的中文编码问题的小工具 慎用const关键字 装箱,拆箱以及反射 动态调用对象的属性和方法——性能和灵活性兼备的方法 消除由try/...

    selenium+phantomjs

    3.通过访问频率判断是否是非人类请求 方法:设置爬取间隔 和爬取策略 4.验证码 方法:识别验证码 5.页面请求不再直接渲染,通过前端js异步获取 方法:a通过selenium+phantomjs来获取数据 b.找到数据来源的接口(ajax接口)...

    KODExplorer 芒果云-资源管理器

    - 增加创建副本功能 按住ctrl拖拽即可,可以到当前,也可以到文件夹。 - 多选拖拽优化:剪切到、移动到某个文件夹 - 创建副本功能 - 树目录和文件列表一致性保持 更新相互通知 ####fix bug:(bug解决和程序优化...

    ExtAspNet v2.2.1 (2009-4-1) 值得一看

    +PageManager的实例方法AddAjaxUpdateControl改名为AddAjaxAspnetControls,现在可以在Page_Load中设置需要在AJAX中需要更新的Asp.net控件了。 -在Page_Load中设置了哪些需要在AJAX中更新的Asp.net控件会在回发时...

    最新Java面试宝典pdf版

    Overloaded的方法是否可以改变返回值的类型? 14 19、构造器Constructor是否可被override? 15 20、接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承具体类(concrete class)? 抽象类中是否...

    ExtAspNet_v2.3.2_dll

    -Grid的Values属性访问限制由internal改为public,这就意味这可以自由改变Grid中每个单元格的值了。 -增加示例-如何将Grid控件导出为Excel(data\grid_excel_run.aspx)(feedback:503684912)。 -如果TreeNode的属性...

    Java面试笔试资料大全

    Overloaded的方法是否可以改变返回值的类型? 14 19、构造器Constructor是否可被override? 15 20、接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承具体类(concrete class)? 抽象类中是否...

    整理后java开发全套达内学习笔记(含练习)

    进行高精度运算可以用java.math包中BigDecimal类中的方法。 自动类型提升又称作隐式类型转换。 强制类型转换:int ti; (byte) ti ; 强制转换,丢弃高位 宣告变量名称的同时,加上“final”关键词来限定,这个...

    jquery电子文档chm

    global (Boolean) : (默认: true) 是否触发全局 AJAX 事件。设置为 false 将不会触发全局 AJAX 事件,如 ajaxStart 或 ajaxStop 可用于控制不同的 Ajax 事件。 ifModified (Boolean) : (默认: false) 仅在服务器...

    Java面试宝典2020修订版V1.0.1.doc

    15、怎么判断指定路径是否为目录 65 16、怎么获取指定路径下的全部文件 65 17、Java怎么读取文件和写入文件 65 18、java怎么复制文件 68 19、用JDBC如何调用存储过程 69 20、JDBC中的PreparedStatement相比Statement...

Global site tag (gtag.js) - Google Analytics