`
JavaCrazyer
  • 浏览: 2990746 次
  • 性别: 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 占位符的内容就被响应文本来填充。




 

 

分享到:
评论

相关推荐

    jquery ajax请求实例深入解析

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

    AJAX入门实例-简单易懂

    一个AJAX的入门实例,用最简单的代码表现什么是AJAX,AJAX的原理。 这个是——异步请求请求一个url。 还有一个是本页请求,用于asp.net。

    全面解析Ajax和jsonp使用总结

    •ajax请求的页面或资源只能是同一个域下面的资源,不能是其他域的资源,这是在设计ajax时基于安全考虑。 ——————————————————————————– ajax的方法: 1. $.ajax({}): •常用参数: •url...

    【卷一/共两卷】AJAX实战pdf高清版90M

    第四部分 Ajax实例研究 第9章 动态双组合功能 9.1 双组合脚本 9.1.1 客户端解决方案的局限性 9.1.2 服务器端解决方案的限制 9.1.3 基于Ajax的解决方案 9.2 客户端架构 9.2.1 设计表单 9.2.2 设计客户端/服务器端交互...

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

     一个Java+ajax写的登录实例,附有JAVA源文件,JAVA新手朋友可以学习一下。 JAVA+JSP的聊天室 8个目标文件 简单 JavaScript万年历 显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 一个...

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

     一个Java+ajax写的登录实例,附有JAVA源文件,JAVA新手朋友可以学习一下。 JAVA+JSP的聊天室 8个目标文件 简单 JavaScript万年历 显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 一个...

    java源码包---java 源码 大量 实例

     一个Java+ajax写的登录实例,附有JAVA源文件,JAVA新手朋友可以学习一下。 JAVA+JSP的聊天室 8个目标文件 简单 JavaScript万年历 显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 一...

    [JavaScript.DOM高级程序设计](加)桑贝斯.扫描版.part1.rar

     11.2.2 Ajax搜索请求   11.2.3 地图与搜索的Mashup应用   11.3 服务器端API:需要代理脚本   11.3.1 通过Basecamp构建集成的To-Do列表   11.3.2 通过Flickr取得个性头像   11.4 小结   第12章 ...

    php网络开发完全手册

    6.3 本地文件的操作实例——小型留言本 96 6.3.1 留言发表模块 96 6.3.2 浏览模块 98 6.4 远程文件的操作实例 99 6.5 文件的上传与下载 99 6.5.1 文件的上传 99 6.5.2 文件的下载 100 6.6 小结 101 第7章 字符的处理...

    Ext+JS高级程序设计.rar

    第14章 单页面应用实例——Java语言实现 410 14.1 技术选型 410 14.2 搭建开发环境 411 14.3 配置Ext.Direct 413 14.4 用户登录页面 417 14.5 系统主页面与动态菜单 421 14.6 用户管理模块 427 14.7 角色管理模块 ...

    Visual.Basic.2010.&.NET4.高级编程(第6版)-文字版.pdf

    第1章 visual studio 2010 3 1.1 visual studio 2010:从express到ultimate的各种版本 4 1.2 visual basic的关键字和语法 7 1.2.1 控制台应用程序 10 1.2.2 从项目模板上创建项目 11 1.2.3 solution ...

    Java Web编程宝典-十年典藏版.pdf.part2(共2个)

    全书分4篇,共24章,其中,第1篇为技能学习篇,主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密Struts2高级技术、Hib锄劬e...

    [JavaScript.DOM高级程序设计](加)桑贝斯.扫描版.part3.rar

     11.2.2 Ajax搜索请求   11.2.3 地图与搜索的Mashup应用   11.3 服务器端API:需要代理脚本   11.3.1 通过Basecamp构建集成的To-Do列表   11.3.2 通过Flickr取得个性头像   11.4 小结   第12章 ...

    [JavaScript.DOM高级程序设计](加)桑贝斯.扫描版.part2.rar

     11.2.2 Ajax搜索请求   11.2.3 地图与搜索的Mashup应用   11.3 服务器端API:需要代理脚本   11.3.1 通过Basecamp构建集成的To-Do列表   11.3.2 通过Flickr取得个性头像   11.4 小结   第12章 ...

    asp.net知识库

    常用的匹配正则表达式和实例 经典正则表达式 delegate vs. event 我是谁?[C#] 表达式计算引擎 正式发布表达式计算引擎WfcExp V0.9(附源码) 运算表达式类的原理及其实现 #实现的18位身份证格式验证算法 身份证15To18...

Global site tag (gtag.js) - Google Analytics