• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Ajax 核心框架函数及例子
    核心ajax(options)函数中,包含了建立xmlhttprequest,提取数据,判断是否回复成功等,基本满足了日常需求。
    复制代码 代码如下:

    // A generic function for performming AJAX requests
    // It takes one argument, which is an object that contains a set of options
    // All of which are outline in the comments, below
    function ajax( options ) {
    // Load the options object with defaults, if no
    // values were provided by the user
    options = {
    // The type of HTTP Request
    type: options.type || "POST",
    // The URL the request will be made to
    url: options.url || "",
    // How long to wait before considering the request to be a timeout
    timeout: options.timeout || 5000,
    // Functions to call when the request fails, succeeds,
    // or completes (either fail or succeed)
    onComplete: options.onComplete || function(){},
    onError: options.onError || function(){},
    onSuccess: options.onSuccess || function(){},
    // The data type that'll be returned from the server
    // the default is simply to determine what data was returned from the
    // and act accordingly.
    data: options.data || ""
    };
    // Create the request object
    var xml = new XMLHttpRequest();
    // Open the asynchronous POST request
    //xml.open("GET", "/some/url.cgi", true);
    xml.open("GET",options.url, true);
    // We're going to wait for a request for 5 seconds, before giving up
    var timeoutLength = 5000;
    // Keep track of when the request has been succesfully completed
    var requestDone = false;
    // Initalize a callback which will fire 5 seconds from now, cancelling
    // the request (if it has not already occurred).
    setTimeout(function(){
    requestDone = true;
    }, timeoutLength);
    // Watch for when the state of the document gets updated
    xml.onreadystatechange = function(){
    // Wait until the data is fully loaded,
    // and make sure that the request hasn't already timed out
    if ( xml.readyState == 4 !requestDone ) {
    // Check to see if the request was successful
    if ( httpSuccess( xml ) ) {
    // Execute the success callback with the data returned from the server
    options.onSuccess( httpData( xml, options.type ) );
    // Otherwise, an error occurred, so execute the error callback
    } else {
    options.onError();
    }
    // Call the completion callback
    options.onComplete();
    // Clean up after ourselves, to avoid memory leaks
    xml = null;
    }
    };
    // Establish the connection to the server
    xml.send();
    // Determine the success of the HTTP response
    function httpSuccess(r) {
    try {
    // If no server status is provided, and we're actually
    // requesting a local file, then it was successful
    return !r.status location.protocol == "file:" ||
    // Any status in the 200 range is good
    ( r.status >= 200 r.status 300 ) ||
    // Successful if the document has not been modified
    r.status == 304 ||
    // Safari returns an empty status if the file has not been modified
    navigator.userAgent.indexOf("Safari") >= 0 typeof r.status == "undefined";
    } catch(e){}
    // If checking the status failed, then assume that the request failed too
    return false;
    }
    // Extract the correct data from the HTTP response
    function httpData(r,type) {
    // Get the content-type header
    var ct = r.getResponseHeader("content-type");
    // If no default type was provided, determine if some
    // form of XML was returned from the server
    var data = !type ct ct.indexOf("xml") >= 0;
    // Get the XML Document object if XML was returned from
    // the server, otherwise return the text contents returned by the server
    data = type == "xml" || data ? r.responseXML : r.responseText;
    // If the specified type is "script", execute the returned text
    // response as if it was JavaScript
    if ( type == "script" )
    eval.call( window, data );
    // Return the response data (either an XML Document or a text string)
    return data;
    }
    }

    在同等目录中,我们可以建立一个rss.xml文件,用这个函数来访问。
    rss.xml如下:
    复制代码 代码如下:

    titles>
    title>
    缘份
    /title>
    title>
    月亮
    /title>
    title>
    缘份月亮
    /title>
    /titles>

    再建立一个html文档,调用它,就能看到rss.xml中的内容就能被访问到。
    整体看看,其实真的比较简洁和简单。不仅是能访问xml格式文件,html,.js格式的文件都可以调用的;
    这些都可以在本地建立对应的文件,进行调用,都可以实现。
    您可能感兴趣的文章:
    • Ajax核心XMLHTTP组件资料
    • Javascript级联下拉菜单以及AJAX数据验证核心代码
    • jquery ajax方式直接提交整个表单核心代码
    • 解析ajax核心XMLHTTPRequest对象的创建与浏览器的兼容问题
    • Ajax核心技术代码分享
    • Ajax核心XMLHttpRequest总结
    • 简单谈谈AJAX核心对象
    上一篇:Ajax Control Toolkit 34个服务器端控件第1/2页
    下一篇:AJAX 进度条实现代码
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Ajax 核心框架函数及例子 Ajax,核心,框架,函数,及,