Ajax 由 HTML、JavaScript™ 技术、DHTML 和 DOM 组成,这一杰出的方法可以将笨拙的 Web 界面转化成交互性的 Ajax 应用程序。
Ajax 是 Asynchronous JavaScript and XML(以及 DHTML 等)的缩写。
Ajax 做 什么 ?
Ajax 尝试建立桌面应用程序的功能和交互性,与不断更新的 Web 应用程序之间的桥梁。可以使用像桌面应用程序中常见的动态用户界面和漂亮的控件,不过是在 Web 应用程序中。
1 创建新的 XMLHttpRequest 对象
以支持多种浏览器的方式创建 XMLHttpRequest 对象
function createXmlHttpRequest(){
var xmlHttp = false;
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e){
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e2){
xmlHttp = false;
}
}
if (!xmlHttp && typeof XMLHttpRequest != 'undefined'){
xmlHttp = new XMLHttpRequest();
}
}
Ajax 世界中的请求/响应
发出请求
Ajax 应用程序中基本都雷同的流程:
1、从 Web 表单中获取需要的数据。
2、建立要连接的 URL。
3、打开到服务器的连接。
4、设置服务器在完成后要运行的函数。
5、发送请求。
XMLHttpRequest 对象 详解
·open():建立到服务器的新请求。
·send():向服务器发送请求。
·abort():退出当前请求。
·readyState:提供当前 HTML 的就绪状态。
·responseText:服务器返回的请求响应文本。
HTTP 就绪状态
·0:请求没有发出(在调用 open() 之前)。
·1:请求已经建立但还没有发出(调用 send() 之前)。
·2:请求已经发出正在处理之中(这里通常可以从响应得到内容头部)。
·3:请求已经处理,响应中通常有部分数据可用,但是服务器还没有完成响应。
·4:响应已完成,可以访问服务器响应并使用它。
<--
您也许期望任务就绪状态从 0 到 1、2、3 再到 4,但实际上很少是这种情况。
一些浏览器从不报告 0 或 1 而直接从 2 开始,然后是 3 和 4。其他浏览器则报告所有的状态。
还有一些则多次报告就绪状态 1。在上一节中看到,服务器多次调用 updatePage(),
每次调用都会弹出警告框 —— 可能和预期的不同!
-->
HTTP 状态代码
401:未经授权
403:禁止
404:没找到
200:一切正常
301:永久移动
302:找到(请求被重新定向到另外一个 URL/URI 上)
305:使用代理(请求必须使用一个代理来访问所请求的资源)
利用 DOM 进行 Web 响应
El.innerText
El. innerHTML
DWR: Easy Ajax to Java
Direct Web Remoting
DWR allows Javascript in a browser to interact with Java on a server and helps you manipulate web pages with the results.
DWR consists of two main parts:
1 A Java Servlet running on the server that processes requests and sends responses back to the browser.
2 JavaScript running in the browser that sends requests and can dynamically update the webpage.
下面来看一看一个简单的的ajax实例吧:
ajax 有两个方法。一个是处理方法。一个是回调的方法,也就是用来处理html页面用的。
我用的是一个带jar包的ajax 的实例:
说到带jar包那是做之前不用说你 也知道。加上一个dwr的jar包吗?加jar包和struts一样把jar 包放在WEB-INF/lib/就可以了。说了和struts 一样。那一定也要有一个xml文 件了。在WEB-INF/加一个dwr.xml文件。
这个文件了一定要在web.xml中配了。也配一个.怎么配呢?说了和struts一样了。那就是配一个servlet了吗。
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
<!-- This should NEVER be present in live -->
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
接下来就是就要使用dwr.xml.文件了。
先通过配一个java类吧来学一学这个文件吧。
就像struts中的action 方式一样。如下:
<create creator="new" javascript="User">
<param name="class" value="com.dwr.User"/>
</create>
creator:方式
javascript:引用的对象名
class:是普通类》(可以是servlet.action)
value:类的路径
简单的一个类:
public class User {
public String getUser(String userId){
StringBuffer user=new StringBuffer();
Connection conn=DBManager.getConnection();
String sql="select * from orderitem where itemId=?";
try {
PreparedStatement ps=conn.prepareStatement(sql);
ps.setInt(1, Integer.parseInt(userId));
ResultSet rs=ps.executeQuery();
if(rs.next()){
user.append("{item_id:'");
user.append(rs.getInt("itemId"));
user.append("',item_name:'");
user.append(rs.getString("itemName"));
user.append("',unit_num:'");
user.append(rs.getInt("unitNum"));
user.append("',unit_price:'");
user.append(rs.getDouble("unitPrice"));
user.append("',sum:'");
user.append(rs.getDouble("sum"));
user.append("',order_id:'");
user.append(rs.getInt("orderId"));
user.append("'}");
}else{
user=new StringBuffer("{item_id:null,item_name:null,unit_num:0,unit_price:0,sum:0.0,order_id:null}");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(user.toString());
return user.toString();
}
}
现在就测试一下这个类有没有注册成功:
注册成功就会在这个页面上显示这个类了。
Classes known to DWR:
然后点击打开这个类。打两个javascript 地址连接copy到jsp页面去就可以通过javascript访问java类了。
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Methods For: User (com.dwr.User)
To use this class in your javascript you will need the following script includes:
<script type='text/javascript' src='/ajax_struts_javascript/dwr/interface/User.js'></script>
<script type='text/javascript' src='/ajax_struts_javascript/dwr/engine.js'></script>
In addition there is an optional utility script:
<script type='text/javascript' src='/ajax_struts_javascript/dwr/util.js'></script>
Replies from DWR are shown with a yellow background if they are simple or in an alert box otherwise.
The inputs are evaluated as Javascript so strings must be quoted before execution.
There are 10 declared methods:
- getUser( ); <script type="text/javascript"></script>
- wait( ); <script type="text/javascript"></script>
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
把上面红色字。copy天jsp页面就可以使用了。如下红色两行
<head>
<title>My JSP 'index.jsp' starting page</title>
<script type='text/javascript' src='/ajax_struts_javascript/dwr/interface/User.js'></script>
<script type='text/javascript' src='/ajax_struts_javascript/dwr/engine.js'></script>
<script type="text/javascript" src="<%=path%>/js/index.js"></script>
</head>
下面就写一个简单的js代码调用了。
前面已经说过了。就两个方法。一个是触发方法,另一个是回调方法;
function getUser(id){
User.getUser(id,updatdPage);
}
function updatdPage(userInfo){
var userO=eval("("+userInfo+")");
document.getElementById("item_id").value=userO.item_id;
document.getElementById("item_name").value=userO.item_name;
document.getElementById("unit_num").value=userO.unit_num;
document.getElementById("unit_price").value=userO.unit_price;
document.getElementById("sum").value=userO.sum;
}
getUser(id)是一个业务处理方法,而下面的一个updatdPage(userInfo)则是加调方法对jsp页面时行处理的。
在这里有人可能会迷惑updatdPage(userInfo)中的userInfo是从哪儿来的呢。干么的呢。你调业务处理类时返的数据就会被userInfo获取到。就可以对数据进行操作了。
这就是一个简单的实例。可能说的不好。还是自己看实例吧
相关推荐
总结起来,这个简单的AJAX实例展示了如何通过JavaScript与PHP交互,实现在不刷新页面的情况下获取并显示服务器端数据。通过这种方式,我们可以创建更加用户友好的交互式Web应用,提升用户体验。在实际项目中,可以...
总结来说,这个简单的Ajax实例展示了如何使用JavaScript和ASP创建一个基本的异步数据交换。通过理解Ajax的工作机制和这个实例,开发者可以进一步学习更复杂的Ajax应用,如发送POST请求、处理错误、使用JSON数据格式...
在这个个人编写的Ajax实例中,开发者可能实现了一个简单的功能,比如通过Ajax获取数据并在页面上动态显示。由于没有提供具体的代码,我们无法深入讨论细节,但上述内容概述了Ajax的基本原理和开发过程。在实际项目中...
"简单ASP+AJAX实例"是一个教学资源,旨在帮助新手了解如何结合ASP和AJAX来构建无刷新请求功能。在这样的实例中,通常会包含以下几个部分: 1. **ASP后端处理**:使用ASP接收来自客户端的AJAX请求,处理数据(例如...
这个简单的Ajax实例是基于JSP(JavaServer Pages)实现的,它主要用于提升用户体验,通过异步方式与服务器进行数据交互,使得用户在提交表单或执行某些操作时,页面可以保持其当前状态,而只需要更新需要变动的部分...
在这个"完整C# Ajax简单实现实例"中,我们将会探讨如何使用C#后端配合Ajax前端来实现这一功能。 首先,让我们理解C#在Ajax中的作用。在ASP.NET框架中,C#是常用的服务器端编程语言,用于处理业务逻辑和数据库交互。...
至此,我们就完成了一个简单的AJAX实例。这个实例展示了如何使用JavaScript发起异步请求,以及如何在服务器端处理请求并在前端显示结果。通过这种方式,AJAX极大地提高了Web应用程序的用户体验,因为它能够在不刷新...
UpdatePanel是一个服务器控件,它可以包裹其他控件,并在后台执行操作时控制哪些部分应进行异步更新。在GridView所在的区域添加UpdatePanel,可以确保只有GridView在更新数据时才会刷新。 接着,我们配置Ajax控件...
一个简单的Ajax GET请求示例如下: ```javascript // 创建XMLHttpRequest对象 var xhr = new XMLHttpRequest(); // 监听状态变化 xhr.onreadystatechange = function() { if (xhr.readyState === 4 && xhr.status...
描述中的“简单不错”可能是指一个易于理解和实现的示例。这通常包括一个触发异步请求的按钮,一个UpdatePanel,以及一个处理服务器端数据的代码段。当用户点击按钮时,ASP.NET AJAX通过AJAX调用向服务器发送请求,...
下面是一个简单的.NET AJAX实例: 1. 首先,在.aspx页面上添加ScriptManager和UpdatePanel: ```html <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager> ...
在"JsonDemo"项目中,可能包含了一个简单的AJAX+JSON示例。客户端可能有一个HTML页面,通过JavaScript调用AJAX发送请求,服务器端使用.NET处理请求,将数据以JSON格式返回。例如,一个简单的获取用户信息的接口: `...
这个简单的Ajax实例“AjaxSample”旨在演示如何通过JavaScript实现异步数据交换,从而提升用户体验,减少页面刷新带来的延迟感。 在Ajax的核心概念中,有以下几个关键组成部分: 1. **XMLHttpRequest对象**:这是...
AjaxPro是一个开源的.NET AJAX框架,它提供了一种简单的方式来创建异步控件。使用AjaxPro,你可以直接将服务器端的方法标记为异步,而无需编写客户端的AJAX代码。 1. 安装AjaxPro库并引用到项目中。 2. 在服务器端...
综上所述,这个"asp+jquery ajax实例源码"展示了如何利用ASP作为服务器端语言处理数据,结合jQuery的AJAX功能,实现无刷新的交互体验,优化用户在添加、删除、修改和分页操作中的浏览感受。通过学习和理解这个实例,...
在这个"asp.net ajax简单应用实例"中,我们将探讨如何利用ASP.NET AJAX实现一个功能:当用户在下拉框中选择不同的选项时,页面上的某个Label控件的值会相应改变,而无需整个页面重新加载。 首先,`Default.aspx`是...
jQuery 是一个广泛使用的 JavaScript 库,它简化了 DOM 操作、事件处理以及包括 Ajax 在内的各种功能。 在 jQuery 中,实现 Ajax 请求非常简单,主要依赖于 `$.ajax()`、`$.get()` 和 `$.post()` 函数。这里我们将...
在本教程中,我们将深入探讨Ajax的基础知识、工作原理以及如何实现一个简单的Ajax实例。 ### 一、Ajax基础知识 1. **异步通信**:Ajax的最大特点就是异步,意味着用户可以继续浏览网页,而后台则在处理请求并获取...
在本实例中,`DTAjaxTest`项目包含了一个具体的实现。首先,你需要在eclipse中导入这个项目,确保你已经安装了相应的Java和Web开发环境。项目的结构可能包含以下关键文件: 1. HTML文件:通常名为`index.html`,...