`
xiao_yi
  • 浏览: 405425 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
阅读更多

下面这个是没有应用Prototype:

最近研究了一下Ajax,越看越有趣。Ajax其实就是JavaScript+DOM+CSS+XMLHttpRequest的结合体。前三个实现了DHTML(动态HTML),再加上XMLHttpRequest后,就成了Ajax。说Ajax 改变了用户的浏览体验,我觉得其实就是Ajax让用户能够在网页上执行连续不间断的操作,就和使用CS程序一样。之所以能够连续不断操作,是因为Ajax是异步的,用Ajax与后台通信,不会打断用户的操作(比如刷新界面等)。真的很不错。昨天从CSDN上看到一个用Ajax技术实现的网络操作系统Ajax13,进去试了一把,爽!

下面是我刚学习Ajax做的一个程序:登录验证

用户输入用户名和密码后到服务器验证,之后返回结果,如果验证失败,就弹出对话框提示,否则就跳转到其他页面。

1.页面

<form name="myform" action="login.do" method="post" onSubmit="return check()">
           Name: 
<input type=text id="usr" name="usr"><br>
           Password: 
<input type=password id="pwd" name="pwd"><br>
            
           
<input type=submit /> 
</form>

2.JavaScript

<script type="text/javascript">
    
var xmlRequest = null;
    
var READY_STATE_UNLOAD = 0;
    
var READY_STATE_LOADING = 1;
    
var READY_STATE_LOADED = 2;
    
var READY_STATE_INTERACTIVE = 3;
    
var READY_STATE_COMPLATE = 4;
            
    
//获取XMLHttpRequest对象
    function getXMLHttpRequest() {
        
if (window.XMLHttpRequest) ...{
                  
return new XMLHttpRequest();
        }
 else ...{
                  
return new ActiveXObject("Microsoft.XMLHTTP");
        }

    }

        
    
function check() {
            
//获得用户输入的用户名和密码
            var params = "usr=" + document.getElementById("usr").value + "&pwd=" + document.getElementById("pwd").value;
                
             sendRequest(
"login", params, "get");
        
            
return false;
    }


                      
//发送请求
    function sendRequest(url, params, method) {
                     
if (!method) ...{
                               method
="post";
                         }

                
.........
                           //获得XMLHttpRequest对象
                        xmlRequest 
= getXMLHttpRequest();
                    
if (xmlRequest) ...{
                              
//设置回调函数
                               xmlRequest.onreadystatechange=callBack;
                    
                             
//打开连接
                              xmlRequest.open(method, url, true);
                              xmlRequest.setRequestHeader(
"Content-Type""application/x-www-form-urlencoded");
                             
//设置参数
                             xmlRequest.send(params);
                     }

                
             }

            
                     
//回调函数
             function callBack() {
                        
var ready = xmlRequest.readyState;
                        
var data = null;
                
                    
if (ready == READY_STATE_COMPLATE) ...{
                                  data 
= xmlRequest.responseXML;
                    
                                   
//获得返回结果
                                   var flag = data.getElementsByTagName("flag")[0].firstChild.nodeValue;
                    
                               
if (flag == "false"...{
                                        alert(
'用户名或密码错误!请重新输入!');
                                 }
 else ...{
                                           
//打开新窗口
                                          window.open("ok""_top");
                                    }

                  }
                 
    }

            
</script>...

执行的过程是这样的:

Step1:获得XMLHttpRequest对象

Step2:设置请求URL,参数,回调函数

Step3:将请求发送给服务器

Step4:服务器返回结果,回调函数用来处理返回结果

下面是执行的结果:

 下面应用Prototype:

上用Ajax实现的一个登录验证程序,可以看到代码有些复杂。但是Java世界里从来就不缺少框架,Ajax也有不少优秀的框架,其中Prototype就是其中之一。通过Prototype可以轻松实现很多功能,关于Prototype请参见:http://www.prototypejs.org/

下面就用Prototype实现登录验证

1.页面

<form name="myform" action="login.do" method="post" onSubmit="return check()">
            Name: 
<input type=text id="usr" name="usr"><br>
            Password: 
<input type=password id="pwd" name="pwd"><br>
            
            
<input type=submit /> 
 
</form>

 

2.JavaScript

<script type="text/javascript" src="js/prototype.js"></script>
        <scritp type="text/javascript">
           function check() {
                
//获得用户输入的用户名和密码
                var params = "usr=" + document.getElementById("usr").value + "&pwd=" + document.getElementById("pwd").value;
                
               
new Ajax.Request(
                        
"login",      //请求URL
                {
                    method:
'post',   
                    parameters : params,  
//请求参数
                    onComplete: function(transport) {    //设置回调函数
                        var data = transport.responseXML;
                        
var flag = data.getElementsByTagName("flag")[0].firstChild.nodeValue;
                        
                        
if (flag == "false") {
                            alert(
'用户名或密码错误!请重新输入!');
                        }
 else {
                            window.open(
"ok""_top");
                        }

                    }

                }
);
                
                
return false;
     }

 怎样,和上实现相同的功能,却简单了许多

二、Ajax.Updater

Ajax.Updater是用来将返回的html插入到指定的标签中。比如

页面:

<body>
        
<form name="myform" action="login.do" method="post" >            
            
<div id="s"></div>
        
</form>
    
</body>

JavaScript:

分享到:
评论

相关推荐

    AJAX之Prototype入门学习.docx

    Prototype 是 JavaScript 中的一个著名库,由 Sam Stephenson 创建,它为开发者提供了许多便利的功能,尤其在处理 AJAX 请求和增强 DOM 操作方面。Prototype 对 JavaScript 的基础对象进行了扩展,包括 Object、...

    Prototype入门

    《Prototype入门》 Prototype.js 是一个著名的JavaScript库,由Sam Stephenson编写,它极大地扩展了JavaScript的功能,并且对Ajax提供了良好的支持。这个库在Web开发领域具有很高的实用性和学习价值,特别适合B/S...

    prototype从入门到精通

    这个“prototype从入门到精通”的教程涵盖了从基础概念到高级特性的全面学习路径,旨在帮助开发者快速掌握并精通Prototype框架。 一、Prototype基础知识 1. **对象扩展**:Prototype的核心特性之一就是对...

    《ajax入门经典》源代码

    8. **Ajax与AJAX库**:介绍jQuery、Prototype等流行的Ajax库,简化Ajax开发过程。 9. **Ajax性能优化**:讨论Ajax请求的性能问题,提供优化策略,如减少HTTP请求、缓存利用等。 10. **跨域问题与解决方案**:解释...

    介绍ajax开发框架的书《Prototype and Scriptaculous quickly》

    ### 《Prototype and Scriptaculous Quickly》:深入解析Ajax开发框架 #### 一、引言:Prototype与Scriptaculous在Ajax开发中的角色 随着Ajax技术的快速发展,一系列第三方库应运而生,这些库简化了开发者的工作...

    web 2.0入门者 Ajax修炼之道-包含源码

    不仅教会你Ajax的技术细节,同时还带你了解各种功能强大的主流Ajax工具包(Dojo、Prototype、 Script.aculo.us、DWR、Backbase、SmartClient、Ajax.NET、SAJAX、JSON-RPC),掌握Ajax 实时查看源代码的方法以及进行...

    Ajax 修炼之道 Web 2.0 入门 2007

    7. **Ajax库与框架**:可能涉及jQuery、Prototype、Dojo等流行的Ajax库,以及如何使用它们简化Ajax开发。 8. **安全性与性能优化**:探讨Ajax应用的安全问题,如防止XSS(Cross-site scripting)和CSRF(Cross-site...

    Prototype-1.pdf

    - **在线教程**:网络上有很多关于Prototype的免费教程,适合初学者快速入门。 - **社区论坛**:参与Prototype社区的讨论,可以解决具体的技术问题。 - **培训课程**:Marty Hall提供的定制化Java EE培训课程,涵盖...

    ajax:prototype.js很全的手册

    1. **入门指南**:介绍如何引入Prototype.js库,并演示基本的DOM操作和Ajax请求。 2. **DOM操作**:详细讲解`Element`对象的各种方法,如`insert`、`replace`、`wrap`等,以及`Selectors API`,用于高效的选择和...

    Ajax的入门与实践.pdf

    Ajax 入门与实践 Ajax 是基于 XML 的异步 JavaScript, 是当前 Web 创新的重要组成部分。Ajax 这个术语源自描述从基于同页的 Web 应用到基于数据应用的转换。在基于数据的应用中,用户需要的数据,如联系人列表,...

    AJAX技术之DWR框架入门

    **AJAX技术之DWR框架入门** AJAX(Asynchronous JavaScript and XML)是一种在无需刷新整个页面的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使得网页实现异步更新。这种技术可以提升...

    ajax培训.AJAX 的入门知识

    【Ajax入门知识】 Ajax,全称为Asynchronous JavaScript And XML,是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。Ajax并非一项全新的技术,而是利用已有技术如JavaScript、DOM、CSS、HTML等的...

    prototype1.4开发者手册(中文PDF)

    《Prototype 1.4开发者手册》是一本专为JavaScript库Prototype设计的中文参考资料,它深入浅出地介绍了如何利用Prototype进行Ajax开发。Prototype是JavaScript的一个强大框架,它为Web开发提供了一系列实用的功能,...

    prototype1.6 中文版文档

    这有助于初学者快速入门,理解Prototype的核心价值。 2. **对象与类**:Prototype对JavaScript的面向对象编程进行了强化,它引入了类的概念,允许开发者创建具有继承关系的对象。文档详细阐述了如何使用`Class....

    ajax教程

    - 《AJAX——新手快车道.rar》:适合初学者入门,快速掌握Ajax基本操作。 - 《AJAX开发简略[1].part1-5.rar》:可能是某篇关于Ajax开发的系列教程,分多个部分详细讲解Ajax的各个方面。 通过这些资源,你可以全面地...

    prototype.js

    1. **入门指南**:介绍如何引入Prototype.js到项目中,以及基本的使用方法。 2. **核心概念**:阐述Prototype.js的核心思想,如DOM操作、Ajax和事件处理。 3. **API参考**:详尽列举了所有提供的函数和方法,以及...

Global site tag (gtag.js) - Google Analytics