`
buliangniu
  • 浏览: 92240 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

AJAX的基本原理

    博客分类:
  • AJAX
阅读更多

第一个 AJAX 应用程序

 

 

        首先,我们需要一个带有两个文本框的 HTML 表单:用户名和时间。用户名文本框由用户填写,而时间文本框使用 AJAX 进行填写。

 

 

AJAX - 浏览器支持

        AJAX 的要点是 XMLHttpRequest 对象。

        不同的浏览器创建 XMLHttpRequest 对象的方法是有差异的。

        IE 浏览器使用 ActiveXObject,而其他的浏览器使用名为 XMLHttpRequest 的 JavaScript 内建对象。

        如需针对不同的浏览器来创建此对象,我们要使用一条 "try and catch" 语句。

 

 

此 HTML 文件名为 "testAjax.htm"(请注意这个 HTML 表单没有提交按钮!):

 

 

<html>
<head>
    <title>AJAX 的基本原理</title>
</head>
<body>

    <script type="text/javascript">

function ajaxFunction()
 {
     var xmlHttp;
     
     try
        {
       // Firefox, Opera 8.0+, Safari
        xmlHttp=new XMLHttpRequest();
        }
     catch (e)
        {

      // Internet Explorer
       try
          {
          xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
          }
       catch (e)
          {

          try
             {
             xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
             }
          catch (e)
             {
             alert("您的浏览器不支持AJAX!");
             return false;
             }
          }
        }
     }
    </script>

    <form name="myForm">
    用户:
    <input type="text" name="username" />
    时间:
    <input type="text" name="time" />
    </form>
</body>
</html>

 
例子解释:

        首先声明一个保存 XMLHttpRequest 对象的 xmlHttp 变量。

        然后使用 XMLHttp=new XMLHttpRequest() 来创建此对象。这条语句针对 Firefox、Opera 以及 Safari 浏览器。假如失败,则尝试针对 Internet Explorer 6.0+ 的 xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"),假如也不成功,则尝试针对 Internet Explorer 5.5+ 的 xmlHttp=new ActiveXObject("Microsoft.XMLHTTP")。

假如这三种方法都不起作用,那么这个用户所使用的浏览器已经太过时了,他或她会看到一个声明此浏览器不支持 AJAX 的提示。

注释:上面这些浏览器定制的代码很长,也很复杂。不过,每当您希望创建 XMLHttpRequest 对象时,这些代码就能派上用场,因此您可以在任何需要使用的时间拷贝粘贴这些代码。上面这些代码兼容所有的主流浏览器:Internet Explorer、Opera、Firefox 以及 Safari。

 

XMLHttpRequest 对象的知识

 

        在向服务器发送数据之前,我们有必要解释一下 XMLHttpRequest 对象的三个重要的属性。

       onreadystatechange 属性

        onreadystatechange 属性存有处理服务器响应的函数。下面的代码定义一个空的函数,可同时对 onreadystatechange 属性进行设置:

 

xmlHttp.onreadystatechange=function()
  {
  // 我们需要在这里写一些代码
  }

 

readyState 属性

readyState 属性存有服务器响应的状态信息。每当 readyState 改变时,onreadystatechange 函数就会被执行。

这是 readyState 属性可能的值:

 

 

状态 描述
0 请求未初始化(在调用 open() 之前)
1 请求已提出(调用 send() 之前)
2 请求已发送(这里通常可以从响应得到内容头部)
3 请求处理中(响应中通常有部分数据可用,但是服务器还没有完成响应)
4 请求已完成(可以访问服务器响应并使用它)

 

我们要向这个 onreadystatechange 函数添加一条 If 语句,来测试我们的响应是否已完成(意味着可获得数据):

 

xmlHttp.onreadystatechange=function()
  {
  if(xmlHttp.readyState==4)
    {
    // 从服务器的response获得数据
    }
  }

 

responseText 属性

可以通过 responseText 属性来取回由服务器返回的数据。

在我们的代码中,我们将把时间文本框的值设置为等于 responseText:

 

xmlHttp.onreadystatechange=function()
  {
  if(xmlHttp.readyState==4)
    {
    document.myForm.time.value=xmlHttp.responseText;
    }
  }

 

现在,我们必须决定何时执行 AJAX 函数。当用户在用户名文本框中键入某些内容时,我们会令函数“在幕后”执行。

 

<html>
<head>
    <title>AJAX 的基本原理</title>
</head>
<body>

    <script type="text/javascript">

        function ajaxFunction()
        {
            var xmlHttp;

            try
            {
                // Firefox, Opera 8.0+, Safari
                xmlHttp = new XMLHttpRequest();
            }
            catch (e)
            {

                // Internet Explorer
                try
                {
                    xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
                }
                catch (e)
                {

                    try
                    {
                        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
                    }
                    catch (e)
                    {
                        alert("您的浏览器不支持AJAX!");
                        return false;
                    }
                }
            }

            xmlHttp.onreadystatechange = function()
            {
                if (xmlHttp.readyState == 4)
                {
                    document.myForm.time.value = xmlHttp.responseText;
                }
            }
            xmlHttp.open("GET", "time.asp", true);
            xmlHttp.send(null);

        }
    </script>

    <form name="myForm">
    用户:
    <input type="text" name="username" onkeyup="ajaxFunction();" />
    时间:
    <input type="text" name="time" />
    </form>
</body>
</html>

 

AJAX - 服务器端的脚本

现在,我们要创建可显示当前服务器时间的脚本。

responseText 属性会存储从服务器返回的数据。在这里,我们希望传回当前的时间。这是 "time.asp" 的代码: 

 

<%
response.expires=-1
response.write(time)
%>

 

注释:Expires 属性可设置在页面缓存失效前页面被缓存的时间(分钟)。Response.Expires=-1 指示页面不会被缓存。

0
2
分享到:
评论
1 楼 CoderDream 2009-12-09  
太多空格,做了几年Java,看到那么多空格,很不适应!

相关推荐

    ajax 基本原理 ajax 基本原理

    ### Ajax基本原理详解 #### 一、引言 随着互联网技术的发展,用户对于网页应用的交互性和用户体验的要求越来越高。传统的Web应用通常采用浏览器发送请求、服务器处理并返回完整页面的方式,这种方式存在明显的缺点...

    Ajax基本原理讲解

    ### Ajax基本原理详解 Ajax(Asynchronous JavaScript and XML),即异步JavaScript和XML,是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,Ajax可以使网页实现异步更新,这意味着可以在不...

    Ajax第一讲 Ajax基本原理详解

    **Ajax第一讲:Ajax基本原理详解** Ajax,全称Asynchronous JavaScript and XML,是一种在无需刷新整个网页的情况下,能够更新部分网页的技术。这种技术通过在后台与服务器进行少量数据交换,实现了网页的异步更新...

    ASP.NET AJAX控件演示视频之ASP.NET AJAX基本原理

    在"ASP.NET AJAX控件演示视频之ASP.NET AJAX基本原理"中,我们将深入探讨这一技术的核心概念、工作原理以及如何利用它来构建更高效的Web应用。 首先,ASP.NET AJAX的主要目标是实现页面的部分更新,而无需刷新整个...

    ASP.NET AJAX基本原理2

    在这个主题“ASP.NET AJAX基本原理2”中,我们将深入探讨ASP.NET AJAX的核心组件以及如何使用HoverMenu控件。 ASP.NET AJAX的核心组件包括: 1. **ScriptManager**:这个服务器控件是ASP.NET AJAX的基础,它负责...

    ASP.NET AJAX基本原理.part2

    ASP.NET AJAX基本原理,学习ASP.NET和AJAX的好资料!

    ASP.NET AJAX基本原理.part1

    ASP.NET AJAX基本原理,学习ASP.NET和AJAX的好资料!

    ASP.NET AJAX基本原理

    ASP.NET AJAX(Asynchronous JavaScript and XML)是一种技术框架,它扩展了Microsoft的ASP.NET平台,引入了...通过理解其基本原理和使用方法,开发者能够构建出响应式、高效的Web应用,提供接近桌面应用的用户体验。

    Ajax基本原理.pdf

    Ajax的基本原理包括以下几个关键组成部分: 1. **异步通信**:Ajax的关键特性是异步性,这意味着用户可以继续与页面交互,而后台数据请求和处理不会阻塞用户界面。通过XMLHttpRequest对象,JavaScript可以在后台与...

    Asp.net+Ajax基本原理++SQL2000(javascript+XMLHTTPRequest技术)实现百度搜索智能下拉列

    Asp.net、Ajax和SQL2000是Web开发中的核心技术,它们的结合可以构建出高效、交互性强的Web应用程序。在这个主题中,我们将深入探讨如何利用这些技术来实现一个类似百度搜索的智能下拉列表功能,这个功能在用户输入...

    详解Ajax的基本原理

    **Ajax基本原理** Ajax,全称为Asynchronous JavaScript + XML,是一种在无需刷新整个网页的情况下,能够更新部分网页内容的技术。最初由Jesse James Garrett提出,它并非一项全新的技术,而是结合了JavaScript、...

    Ajax基本运行原理

    ### Ajax基本运行原理详解 #### 引言 随着互联网技术的不断发展,用户对于网页应用程序的交互性和用户体验的要求越来越高。传统的浏览器/服务器(B/S)架构虽然解决了早期客户端/服务器(C/S)架构中存在的部署和...

    AJAX相关资料(基本原理,核心技术及其研究应用,In_Action)

    **AJAX基本原理** AJAX(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它的基本工作原理是通过JavaScript与服务器进行异步数据交换,再利用JavaScript动态...

    AJAX原理及其在Web开发中的应用.pdf

    一、AJAX基本原理 AJAX是一种异步通信技术,旨在解决传统Web应用中的同步交互问题。在AJAX中,用户请求与服务器响应异步化,部分数据或校验由AJAX引擎处理,减少了服务器的负担和响应时间。 二、AJAX技术架构 ...

    ajax原理,xmlHttpRequest

    #### 二、AJAX基本原理 AJAX的主要工作原理是利用`XMLHttpRequest`对象来向服务器发送异步请求,并从服务器获取数据,随后使用JavaScript操作DOM来更新页面中的内容。这种方式使得用户可以在不离开当前页面的情况下...

    ajax的基本原理以及实现

    ### AJAX的基本原理及其实现 #### 一、引言 AJAX(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现...

    ajax开发技术原理与实践教程

    ### 一、Ajax基本原理 1. **异步通信**:Ajax的核心特性就是异步,它通过JavaScript创建XMLHttpRequest对象,向服务器发送请求,同时用户可以继续在页面上进行其他操作。 2. **局部更新**:Ajax请求返回的数据可以...

    ajax ajax原理 ajax代码 ajax编程 ajax学习

    **Ajax(Asynchronous JavaScript and XML)技术是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量...不过,理解其基本原理和流程对于任何前端开发者来说仍然至关重要。

    AJAX 参考手册 ajax 教程

    AJAX 基本原理 AJAX 的核心是 XMLHttpRequest 对象,它允许 JavaScript 在后台与服务器通信。当用户触发一个事件(如点击按钮),JavaScript 会创建一个 XMLHttpRequest 实例,然后向服务器发送请求。服务器接收到...

    ajax学生成绩查询

    Ajax 基本原理 Ajax 工作原理是利用 JavaScript 创建一个 XMLHttpRequest 对象,这个对象可以与服务器进行通信。当用户触发查询事件(如点击查询按钮)时,JavaScript 会向服务器发送异步请求,获取数据。服务器...

Global site tag (gtag.js) - Google Analytics