`

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

阅读更多
原文地址:https://www.cnblogs.com/lyl6796910/archive/2011/11/16/2461342.html

    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>  

分享到:
评论

相关推荐

    Ajax异步请求

    Ajax异步请求是一种基于JavaScript和XMLHttpRequest对象的技术,允许Web应用程序在不刷新整个页面的情况下,更新页面的一部分内容。它可以实现异步通信,提高用户体验和页面加载速度。 在Ajax异步请求中,...

    Ajax异步提交判断用户名是否可用

    总结来说,利用Ajax实现“判断用户名是否可用”功能,需要结合前端JavaScript和后端服务器的配合,通过异步请求和响应处理,实现无刷新的用户体验,同时关注性能和安全性。在实际开发中,还可以结合现代前端框架如...

    AJAX异步处理原理分析

    **AJAX异步处理原理分析** AJAX,全称Asynchronous JavaScript and XML(异步JavaScript和XML),是一种在不刷新整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使网页实现局部...

    JavaWeb ajax异步自动填充信息

    本示例“JavaWeb ajax异步自动填充信息”是一个典型的Ajax应用,模拟了搜索引擎如百度在用户输入时自动填充建议的功能。 首先,我们需要理解Ajax的工作原理。Ajax的核心是XMLHttpRequest对象,它允许JavaScript在...

    ajax实现异步提交,判断用户名是否存在与是否过短

    总的来说,实现Ajax异步提交和用户名验证需要结合前端JavaScript和后端API,通过合理的逻辑设计和交互反馈,可以提供流畅且高效的用户体验。同时,确保兼容不同浏览器,考虑错误处理和安全性也是开发中不可忽视的...

    ajax异步提交源代码

    总结来说,Ajax异步提交是通过JavaScript与服务器进行通信的一种方式,它可以提高网页的交互性和响应性。无论是纯JavaScript还是使用像Prototype这样的库,其核心都是通过XMLHttpRequest对象来实现数据的异步传输。...

    ajax异步请求小结

    **Ajax异步请求小结** Ajax(Asynchronous JavaScript and XML)是一种用于创建快速、动态网页的技术,它允许在不重新加载整个页面的情况下,与服务器交换数据并更新部分网页内容。这种技术极大地提升了用户体验,...

    Ajax异步无刷新验证码

    Ajax异步无刷新验证码解决了这个问题,当用户输入错误的验证码后,只需点击刷新按钮或触发特定事件,即可在不刷新整个页面的情况下更新验证码。 Ajax是Web开发中的一种技术,它允许浏览器与服务器进行后台通信,...

    Ajax异步调用框架

    总的来说,Ajax异步调用框架是前端开发中实现动态加载和无刷新更新的重要工具,它通过JavaScript和XMLHttpRequest对象实现了客户端与服务器的高效交互,提高了用户体验。然而,随着Web技术的发展,如今我们有更多...

    Ajax页面局部异步刷新技术

    通过以上分析可以看出,通过Ajax技术中的`XMLHttpRequest`对象可以轻松地实现页面局部的异步刷新,极大地提升了用户的交互体验。此外,还需要注意编码、请求方式、同步/异步模式的选择等因素对请求的影响。在实际...

    Ajax异步无刷新登录实例

    Ajax异步无刷新登录是一种常见的Web开发技术,它利用JavaScript的Ajax(Asynchronous JavaScript and XML)功能,在不重新加载整个网页的情况下与服务器交换数据并更新部分网页内容。这个实例是用C#语言实现的,旨在...

    ajax异步提交获取信息示例

    **Ajax异步提交获取信息详解** 在Web开发中,AJAX(Asynchronous JavaScript and XML)是一种创建动态网页的技术,允许在不重新加载整个页面的情况下,与服务器交换数据并更新部分网页内容。本示例主要讲解如何利用...

    Ajax Demo Ajax 示例 XMLHttpRequest 异步 静态

    2. **配置请求**:使用 `open()` 方法指定请求类型(GET 或 POST)、URL 和是否异步。例如,`xhr.open('GET', 'api/time', true)`。 3. **设置回调函数**:通过 `onreadystatechange` 事件监听请求状态的变化。当...

    Ajax异步请求分页

    综上所述,Ajax异步请求分页是提高Web应用性能和用户体验的重要手段,结合C#的服务器处理能力,能够构建出高效且用户友好的分页系统。在实际开发中,需要根据项目需求灵活运用各种技术和策略,确保系统的稳定性和可...

    Ajax异步请求简单示例

    总的来说,Ajax异步请求能够实现不刷新整个页面的情况下与服务器通信,提高用户体验。通过JavaScript和Java的配合,我们可以构建动态、高效的Web应用。这个示例提供了一个基础的Ajax请求流程,实际应用中,可能需要...

    ajax异步 网页无刷新

    3. **XMLHttpRequest对象**:XMLHttpRequest是JavaScript内置的一个对象,它可以发送异步HTTP请求到服务器。通过这个对象,我们可以设置请求的类型(GET或POST)、URL、数据以及处理响应的回调函数。 4. **添加点击...

    Ajax 异步传输应用

    **Ajax(Asynchronous JavaScript and XML)异步传输技术是Web开发中的一个重要概念,它使得网页可以在不刷新整个页面的情况下与服务器进行数据交换,提升了用户体验。本文将深入探讨Ajax的工作原理、应用场景以及...

    Ajax异步读取数据

    Ajax(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使网页实现异步更新。这种技术的核心是JavaScript,利用...

    AJAX异步通信技术学习笔记

    ### AJAX异步通信技术详解 #### 一、引言 AJAX(Asynchronous JavaScript and XML)是一种使用JavaScript和XML在浏览器与服务器之间进行数据传输的技术。通过这种技术,可以实现网页部分更新,而无需重新加载整个...

Global site tag (gtag.js) - Google Analytics