`
JavaCrazyer
  • 浏览: 3012284 次
  • 性别: Icon_minigender_1
  • 来自: 河南
社区版块
存档分类

AJAX高级学习(1)——AJAX 请求实例

阅读更多

 

我们已看到 AJAX 可被用来创建更多交互性的应用程序。

————————————————————————
AJAX Suggest实例

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

Suggestions:

————————————————————————

 

例子解释 - 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 占位符的内容就被响应文本来填充。




 

 

分享到:
评论

相关推荐

    学习ajax的文档——ajax基础文档

    Ajax中的高级请求和响应 除了基本的GET和POST请求,Ajax还可以支持PUT、DELETE等HTTP方法,用于更新和删除资源。此外,可以使用`setRequestHeader()`设置自定义的HTTP头部,比如`Content-Type`,来适应不同的数据...

    jquery ajax请求实例深入解析

    比如.ajaxComplete()——请求完成时.ajaxError()——请求失败时.ajaxSend()——在Ajax请求发送时附加一个function去执行.ajaxStart()——请求开始时,.ajaxStop()——请求结束时.ajaxSuccess()——请求成功时.load...

    Ajax学习——DWR的参考书和实用案例学习总结

    3. **Controls**:DWR还提供了丰富的UI控件,如表格、树形结构等,这些控件可以直接与服务器进行数据交换,无需手动处理Ajax请求和响应。 4. **Caching**:DWR支持缓存策略,可以有效地减少网络传输,提高性能。 #...

    Ajax功能 实现许愿墙 —— wish

    分页则可以通过设置每页显示的许愿数量,结合Ajax请求不同页码的数据来实现。 最后,考虑到安全性,前端需要对用户输入进行验证,防止SQL注入等攻击。同时,服务器端也要进行数据校验和过滤,确保数据安全。 综上...

    Ajax征服——Ajax小偷模块 源码

    在"Ajax征服——Ajax小偷模块 源码"中,我们可能会涉及到以下几个关键知识点: 1. **XMLHttpRequest对象**:这是Ajax的基础,用于在后台与服务器进行通信。通过创建XMLHttpRequest实例,我们可以打开到服务器的连接...

    Ajax教程 AJAX——新手快车道

    2. **安全问题**:由于AJAX请求仍然遵循同源策略,跨域请求需要服务器端设置CORS头。 3. **SEO挑战**:搜索引擎爬虫可能无法抓取通过AJAX加载的内容,影响页面的搜索引擎排名。 **六、现代Web中的AJAX** 随着Fetch...

    aspAjax实例代码

    1. "gethint.asp":这很可能是ASP服务器端的脚本文件,负责接收前端发送的Ajax请求,处理业务逻辑,例如查询数据库等,并返回相应的数据。 2. "index.html":这是项目的主页面,可能包含HTML结构以及用于发起Ajax...

    Ajax征服——留言本

    - **后端处理**:服务器端接收并处理Ajax请求,可能涉及数据库操作,如存储新留言、检索旧留言等。 - **动态更新**:接收到服务器响应后,JavaScript将新数据插入到页面的适当位置,更新留言列表。 3. **Ajax请求...

    ajax实例源码

    ### 学习Ajax实例——Struts2AjaxDemo 在Struts2框架中,我们可以结合Ajax来实现动态页面更新。Struts2提供了内置的Ajax支持,通过使用`struts2-jquery-plugin`插件或者`struts2-convention-plugin`,可以简化Ajax...

    Ajax开发精要——概念、案例与框架

    4. **Vue.js的Axios插件**:Vue生态中的常用插件,结合Vue的组件化特性,方便地处理Ajax请求。 **四、Ajax案例分析** 1. **无限滚动**:在新闻网站或社交媒体中,当用户滚动到底部时,通过Ajax加载更多内容,无需...

    ajax实例大全.rar

    **Ajax 实例大全详解** Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。...这些实例涵盖了Ajax的基础用法到高级技巧,是学习和研究Ajax技术的宝贵资源。

    Atlas/ajax基础教程——范例源码

    2. **Atlas API**:熟悉Atlas提供的各种函数和方法,如`atlas.ajax.send()`,用于发起Ajax请求,以及`atlas.util.parseXML()`,用于解析服务器返回的XML数据。 3. **异步通信**:学习如何在不阻塞用户界面的情况下...

    ASP.NET源码——Ajax之用户注册实例.zip

    这个"ASP.NET源码——Ajax之用户注册实例.zip"文件包含了一个具体的用户注册示例,它利用了Ajax技术来实现无刷新的交互体验。 Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够...

    AJAX——新手快车道

    **AJAX——新手快车道** AJAX(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使网页实现异步更新,大大提升了用户...

    Ajax异步传输数据(1)——页面格式

    jQuery库提供了一个更简单的API来处理Ajax请求,例如: ```javascript $.ajax({ url: 'http://example.com/data', type: 'GET', success: function(data) { $('#result').html(data); }, error: function() {...

    ajax入门实例|ajax注册实例

    `login.jsp`文件可能是处理Ajax请求的服务器端脚本,例如使用Java Servlet、PHP或其他后端语言编写。 总结来说,这个Ajax注册实例展示了如何使用Ajax实现客户端与服务器的异步通信,以及如何处理用户的注册请求。...

    PHP实例开发源码——PHP+Ajax无刷新文件上传代码.zip

    本实例"PHP实例开发源码——PHP+Ajax无刷新文件上传代码.zip"着重讲解了如何利用PHP和Ajax技术实现文件的无刷新上传,极大地提升了用户体验。 首先,我们需要了解PHP在文件上传中的基础操作。PHP提供了`$_FILES`...

    ajax 网页特效 实例教程

    下面是一个简单的Ajax GET请求实例: ```javascript var xhr = new XMLHttpRequest(); xhr.open('GET', 'data.json', true); xhr.onreadystatechange = function() { if (xhr.readyState === 4 && xhr.status === ...

Global site tag (gtag.js) - Google Analytics