Ajax重构大致可以分为以下3三个步骤。
一 创建一个单独的JS文件,名称为AjaxRequest.js,并且在该文件中编写重构Ajax 所需的代码
具体代码如下:
var net = new Object(); // 定义一个全局的变量 // 编写构造函数 net.AjaxRequest = function(url,onload,onerror,method,params) { this.req = null; this.onload = onload; this.onerror =(onerror)?onerror:this.defaultError; this.loadDate(url,method,params); } // 编写用于初始化XMLHttpRequest 对象并指定处理函数,最后发送HTTP 请求的方法 net.AjaxRequest.prototype.loadDate = function(url,method,params) { if(!method) // 设置默认的请求方式为GET { method =“GET”; } if(window.XMLHttpRequest) { // 非IE 浏览器 this.req = new XMLHttpRequest(); // 创建XMLHttpRequest 对象 } else if(window.ActiveXObject) { // IE 浏览器 try { this.req = new ActiveXObject(“Microsoft.XMLHTTP”); // 创建XMLHttpRequest 对象 } catch(e) { try { this.req = new ActiveXObject(“Msxml2.XMLHTTP”); // 创建XMLHttpRequest 对象 } catch(e) { } } } if(this.req) { try { var loader = this; this.req.onreadystatechange = function() { net.AjaxRequest.onReadyState.call(loader); } this.req.open(method,url,true); // 建立对服务器的调用 if(method ==“POST”) { // 如果提交方式为POST this.req.setRequestHeader(“Content-Type”,“application / x-www-form-urlencoded”); // 设置请求的内容类型 this.req.setRequestHeader(“x-requested-with”,“ajax”); // 设置请求的发出者 } this.req.send(params); // 发送请求 } catch(err) { this.onerror.call(this); // 调用错误处理函数 } } } // 重构回调函数 net.AjaxRequest.onReadyState = function() { var req = this.req; var ready = req.readyState; // 获取请求状态 if(ready == 4) { // 请求完成 if(req.status == 200) { // 请求成功 this.onload.call(this); } else { this.onerror.call(this); // 调用错误处理函数 } } } // 重构默认的错误处理函数 net.AjaxRequest.prototype.defaultError = function() { alert(“ 错误数据\ n \ n 回调状态:”+ this.req.readyState +“\ n 状态:”+ this.req.status); }
二 在需要应用Ajax 的页面中应用以下的语句包括步骤一中创建的JS 文件
<script language =“javascript”src =“AjaxRequest.js”> </ script>
三 在应用Ajax 的页面中编写错误处理的方法,实例化Ajax 对象的方法和回调函数
具体代码如下:
<script language =“javascript”> / ****************** 错误处理的方法*************************** *********** / function onerror() { alert(“ 您的操作有误!”); } / ****************** 实例化Ajax 对象的方法*********************** ****** / function getInfo() { var loader = new net.AjaxRequest(“getInfo.jsp?nocache =”+ new Date().getTime(),deal_getInfo,onerror,“GET”); } / ************************ 回调函数*********************** *************** / function deal_getInfo() { document.getElementById(“showInfo”).innerHTML = this.req.responseText; } </ script>
相关推荐
总的来说,AJAX重构级联下拉列表是提高Web应用交互性的有效手段,而理解其背后的工作原理和实现方法对于Web开发者来说至关重要。通过这个项目,你可以深入学习AJAX、JavaScript以及前后端交互的相关知识,提升自己的...
**Ajax重构网上书店** 在现代Web开发中,Ajax(Asynchronous JavaScript and XML)技术已经成为创建交互性强、用户体验优良的网页应用的重要工具。本项目旨在利用Ajax技术对网上书店进行重构,提升用户在浏览、搜索...
具体实现过程中,Ajax调用Web Service的步骤大致如下: 1. **创建XMLHttpRequest对象**:这是Ajax的基础,JavaScript中通过`new XMLHttpRequest()`创建该对象。 2. **配置请求**:设置HTTP请求方法(GET、POST等)...
以下是Servlet处理文件上传的基本步骤: 1. 导入必要的库,如`javax.servlet.http.HttpServletRequest` 和 `java.io.File`。 2. 在`doPost`方法中,使用`HttpServletRequest`的`getParts()`或`getInputStream()`...
2. JPetStore重构的关键步骤: - 分析现有代码:理解原有系统的业务逻辑,识别出需要重构的部分。 - 设计新的架构:基于Struts2重新规划应用的结构,确定Action类、Service层和DAO层的职责。 - 实现Struts2配置:...
6. **技术环境**:虽然书中的许多原则和技术适用于任何编程语言,但标签提到的"ajax asp.net c# ipv6 xml"暗示了本书可能在Web开发的背景下进行了深入讨论,特别是关于ASP.NET、C#等.NET平台技术的重构实践,以及XML...
【Ajax 知识点】 Ajax,全称 Asynchronous JavaScript and XML,是一种在无需重新加载整个网页的情况下,...同时,通过DWR与主流Java框架的集成,开发者可以更方便地在大型项目中引入Ajax技术,而不必重构大量代码。
3. **易于集成**:与现有的ASP.NET控件无缝配合,无需完全重构现有应用。 4. **跨浏览器支持**:ASP.NET AJAX支持多种浏览器,如Internet Explorer、Firefox、Chrome等。 5. **强大的调试工具**:Visual Studio提供...
接着,案例中提到了实现Ajax功能的关键技术点,即通过Ajax重构技术来优化代码。随着项目规模的增加,JavaScript代码可能会变得臃肿,此时,代码重构是提高代码质量和可维护性的有效手段。重构步骤如下: 1. 创建一...
在Struts中实现Ajax功能,主要涉及以下几个步骤: 1. **创建Ajax请求**:在客户端,通过JavaScript创建一个XMLHttpRequest对象(或IE的Microsoft.XMLHTTP ActiveX对象)。这个对象提供了异步发送HTTP请求到服务器的...
通过这种方式,你可以在不完全重构应用的前提下,利用AJAX提升Struts应用的用户体验,同时保持系统的稳定性和可维护性。这不仅适用于Struts,也可以推广到其他Java Web框架,因为AJAX的本质是技术而非特定框架的一...
针对这个问题,可以通过以下步骤进行重构: 1. **提取方法**:将查询商品信息的逻辑封装到一个单独的方法中。 2. **分页处理**:在前端页面添加分页功能,每次仅请求一定数量的商品信息,减轻服务器压力。 3. **...
3. **面向对象的重构**:原先的实现可能是一个简单的函数或闭包,但为了增强可维护性和扩展性,代码被重构为一个面向对象的结构。现在有一个`AjaxQueue`构造函数,它拥有自己的方法如`offer`、`replace`、`poll`、`...
### Ajax的基本步骤 1. 创建XMLHttpRequest对象。 2. 打开与服务器的连接,使用`open()`方法指定请求类型(GET、POST等)、URL和是否异步执行。 3. 发送请求,使用`send()`方法。如果是GET请求,参数通常为空;如果...
业务逻辑层的设计应尽量独立于其他层,这样可以方便地进行单元测试和重构。 3. **数据访问层**:该层是与数据库交互的地方,它的任务是执行SQL查询、存储过程或者使用ORM(对象关系映射)框架如Entity Framework来...