zoukankan      html  css  js  c++  java
  • AJAX 请求实例

    AJAX Suggest实例

    在下面的 AJAX 例子中,我们会演示当用户向一个标准的 HTML 表单中输入数据时网页如何与 web 服务器进行通信。

    在下面的文本框中输入名字:

    Suggestions:no suggestion

    例子解释 - HTML表单

    表单的 HTML 代码:

    <form> 
    First Name:<input type="text" id="txt1" onkeyup="showHint(this.value)" />
    </form>

    <p>Suggestions: <span id="txtHint"></span></p>

    正如您看到的,这是一个简单的带有名为 "txt1" 输入域的 HTML 表单。输入域的事件属性定义了一个由 onkeyup 事件触发的函数。

    表单下面的段落包含了一个名为 "txtHint" 的 span,这个 span 充当了由 web 服务器所取回的数据的位置占位符。

    当用户输入数据时,名为 "showHint()" 的函数就会被执行。函数的执行是由 "onkeyup" 事件触发的。另外需要说明的是,当用户在文本域中输入数据时把手指从键盘按键上移开时,函数 showHint 就会被调用。

    例子解释 - showHint() 函数

    showHint() 函数是一个位于 HTML 页面 head 部分的很简单的 JavaScript 函数。

    此函数包含以下代码:

    function showHint(str)
    {

    if (str.length==0)
    {
    document.getElementById("txtHint").innerHTML="";
    return;
    }

    xmlHttp=GetXmlHttpObject()

    if (xmlHttp==null)
    {
    alert ("您的浏览器不支持AJAX!");
    return;
    }

    var url="gethint.asp";
    url=url+"?q="+str;
    url=url+"&sid="+Math.random();
    xmlHttp.onreadystatechange=stateChanged;
    xmlHttp.open("GET",url,true);
    xmlHttp.send(null);
    }

    每当有字符输入文本框时,此函数就会执行。

    假如文本域中存在某些输入,函数就会执行:

    • 定义回传数据的服务器的 url(文件名)
    • 使用文本框的内容向 url 添加参数(q)
    • 添加一个随机的数字,以防止服务器使用某个已缓存的文件
    • 创建一个 XMLHTTP 对象,并告知此对象当某个改变被触发时执行名为 stateChanged 的函数
    • 向服务器发送一个 HTTP 请求
    • 如果输入域为空,此函数仅仅会清空 txtHint 占位符的内容

    例子解释 - GetXmlHttpObject() 函数

    上面的例子可调用名为 GetXmlHttpObject() 的函数。

    此函数的作用是解决为不同浏览器创建不同的 XMLHTTP 对象的问题。

    这是此函数的代码:

    function GetXmlHttpObject()
    {
    var xmlHttp=null;
    try
    {
    // Firefox, Opera 8.0+, Safari
    xmlHttp=new XMLHttpRequest();
    }
    catch (e)
    {
    // Internet Explorer
    try
    {
    xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (e)
    {
    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    }
    return xmlHttp;
    }

    例子解释 - stateChanged() 函数

    stateChanged() 函数包含下面的代码:

    function stateChanged() 
    {
    if (xmlHttp.readyState==4)
    {
    document.getElementById("txtHint").innerHTML=xmlHttp.responseText;
    }
    }

    每当 XMLHTTP 对象的状态发生改变时,stateChanged() 函数就会执行。

    当状态变更为 4(“完成”)时,txtHint 占位符的内容就被响应文本来填充。

  • 相关阅读:
    百度地图根据经纬度计算瓦片行列号
    【完全开源】百度地图Web service API C#.NET版,带地图显示控件、导航控件、POI查找控件
    TCP/UDP简易通信框架源码,支持轻松管理多个TCP服务端(客户端)、UDP客户端
    重中之重:委托与事件
    可复用代码:组件的来龙去脉
    [史上最全]C#(VB.NET)中位运算符工作过程剖析(译)
    物以类聚:对象也有生命
    导入导出Android手机文件
    Android修改system只读权限
    SSHDroid(SSH Server for Android)通过PC或命令连接android
  • 原文地址:https://www.cnblogs.com/bicabo/p/1643888.html
Copyright © 2011-2022 走看看