文件一览
- dynamicUpdate.html
- DynamicUpdateServlet.java
dynamicUpdate.html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Ajax Dynamic Update</title>
<script type="text/javascript">
var xmlHttp;
function createXMLHttpRequest() {
if (window.ActiveXObject) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} else if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
}
}
function doStart() {
createXMLHttpRequest();
var url = "DynamicUpdateServlet?task=reset";
xmlHttp.open("GET",url,true);
xmlHttp.onreadystatechange = startCallback;
xmlHttp.send(null);
}
function startCallback() {
if (xmlHttp.readyState == 4) {
if (xmlHttp.status == 200) {
setTimeout("pollServer()",5000);
refreshTime();
}
}
}
function pollServer() {
createXMLHttpRequest();
var url = "DynamicUpdateServlet?task=foo";
xmlHttp.open("GET",url,true);
xmlHttp.onreadystatechange = pollCallback;
xmlHttp.send(null);
}
function refreshTime() {
var time_span = document.getElementById("time");
var time_val = time_span.innerHTML;
var int_val = parseInt(time_val);
var new_int_val = int_val -1;
if (new_int_val > -1) {
setTimeout("refreshTime()",1000);
time_span.innerHTML = new_int_val;
} else {
time_span.innerHTML = 5;
}
}
function pollCallback() {
if (xmlHttp.readyState == 4) {
if (xmlHttp.status == 200) {
var message = xmlHttp.responseXML.getElementsByTagName("message")[0].firstChild.data;
if (message != "done") {
var new_row = createRow(message);
var table = document.getElementById("dynamicUpdateArea");
var table_body = table.getElementsByTagName("tbody").item(0);
var first_row = table_body.getElementsByTagName("tr").item(1);
table_body.insertBefore(new_row,first_row);
setTimeout("pollServer()",5000);
refreshTime();
}
}
}
}
function createRow(message) {
var row = document.createElement("tr");
var cell = document.createElement("td");
var cell_data = document.createTextNode(message);
cell.appendChild(cell_data);
row.appendChild(cell);
return row;
}
</script>
</head>
<body>
<h1>Ajax Dynamic Update Example</h1>
This page will automatically update itself:
<input type="button" value="Launch" id="go" onclick="doStart();" />
<p>
Page will refresh in <span id="time">5</span> seconds.
</p>
<table id="dynamicUpdateArea" align="left">
<tbody>
<tr id="row0"><td></td></tr>
</tbody>
</table>
</body>
</html>
DynamicUpdateServlet.java
package ajaxbook.chap4;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class DynamicUpdateServlet extends HttpServlet {
private int counter = 1;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
String res = "";
String task = req.getParameter("task");
String message = "";
if (task.equals("reset")) {
counter = 1;
} else {
switch(counter) {
case 1: message = "Steve walks on stage";break;
case 2: message = "iPods rock";break;
case 3: message = "Steve Says Macs rule";break;
case 4: message = "Change is coming";break;
case 5: message = "Yes,OSX runs on Intel - has for years";break;
case 6: message = "Macs will soon hava Intel chips";break;
case 7: message = "done";break;
}
counter++;
}
res = "<message>"+message+"</message>";
PrintWriter out = resp.getWriter();
resp.setContentType("text/xml");
resp.setHeader("Cache-Control", "no-cache");
out.println("<response>");
out.println(res);
out.println("</response>");
out.close();
}
}
执行效果如下图
- 大小: 28.5 KB
分享到:
相关推荐
实现自动刷新页面 本例实现页面自动刷新的效果,该页面的内容如图5-4所示,在该页面中将根据数据库中存储的最新数据信息更新页面中热卖商品的信息,但是对这些信息的修改并不会导致整个页面的刷新。 实际的Web应用中...
标题"jsp+ajax自动刷新实例.zip"揭示了这是一个关于使用JavaServer Pages(JSP)和Asynchronous JavaScript and XML(Ajax)技术实现页面自动刷新的实例项目。这里的关键词是“jsp”和“ajax”,它们是Web开发中的...
Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。在Java中,我们可以利用Ajax实现页面的动态刷新,提高用户体验,因为它允许后台与服务器进行异步数据交换...
本实例主要探讨如何结合这两种技术实现页面的自动刷新功能,这对于实时更新数据显示或者创建无刷新用户体验至关重要。 **1. JSP (JavaServer Pages)** JSP是Java平台上的动态网页技术,它允许开发者在HTML或XML...
4. **设置定时器**:使用 `setTimeout` 函数实现每60秒自动刷新一次。 5. **处理响应**:在 `init` 函数中处理服务器返回的数据,并更新页面的 `sysTimeShow` 元素。 #### 五、getSystemTime.jsp 分析 ```jsp ;...
综上所述,Ajax无刷新技术结合PHP,可以创建出高效、流畅的用户界面,而"无动作"页面数据自动更新则进一步提升了用户体验,使得用户无需手动刷新页面就能实时获取最新信息。在实际开发中,这一技术广泛应用于各种...
本文将深入探讨如何运用Ajax与JSP实现局部页面的自动刷新,并通过一个具体的示例来展示这一过程。 ### Ajax与JSP的融合 Ajax(Asynchronous JavaScript and XML)是一种用于创建快速动态网页的技术,它允许在后台...
在本示例中,我们将探讨如何使用ASP和Ajax结合来实现不刷新网页加载新闻列表的功能。 首先,理解ASP的工作原理至关重要。ASP文件通常包含HTML、CSS、JavaScript以及服务器端脚本语言(如VBScript或JScript)。当...
Ajax局部刷新技术是一种在网页不进行整个页面刷新的情况下,通过后台与服务器异步交换数据并局部更新页面的技术。这种技术极大地提升了用户体验,因为它允许用户在交互时无需等待整个页面加载,仅更新必要的部分。C#...
【Ajax商品滚动无刷新自动更新】技术是一种网页交互体验的优化方法,它允许网页在不进行整个页面刷新的情况下,仅通过后台与服务器交换少量数据,从而实现页面内容的动态更新。这种方式极大地提高了用户体验,减少了...
**Ajax自动刷新技术详解** Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。这种技术通过JavaScript异步与服务器交换数据并局部更新页面,提高了用户体验...
通过Ajax异步无刷新验证码,不仅可以提升用户体验,减少页面刷新带来的延迟,还可以提高网站的安全性,有效防止自动化攻击。同时,这种技术也有助于减轻服务器压力,因为只需要处理验证码的生成和验证,而不需要每次...
4. **定时刷新机制**:通过设置定时器每隔一定时间发送 AJAX 请求,从而实现页面的自动刷新。 以上就是关于 JSP+Ajax 实现 div 自动刷新的主要知识点和技术细节。对于初学者来说,理解这些概念和技术是非常重要的...
Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器交换数据并更新部分网页内容,提高了用户体验,使得网页更加动态和响应迅速。本篇...
在探讨PHP与AJAX如何协同工作以实现网页的局部刷新之前,我们首先需要理解这两个技术的基本概念及其在现代Web开发中的角色。 ### PHP:服务端脚本语言 PHP(Hypertext Preprocessor)是一种广泛使用的开源服务器端...
在Web开发中,Ajax(Asynchronous JavaScript and XML)技术被广泛用于实现页面的无刷新更新,提高用户体验。Ajax的核心在于创建XMLHttpRequest对象,通过异步发送HTTP请求到服务器,获取响应,然后在客户端处理这些...
- **错误处理**:如果服务器返回错误,AJAX可以在不刷新页面的情况下显示错误信息,提供更好的用户体验。 - **数据预填充**:通过AJAX获取用户可能需要的信息,如根据用户输入的地理位置自动填充城市列表。 3. **...
// 每隔1秒自动刷新 } else { window.alert("页面异常"); } } } ``` - **readyState**:表示请求的状态,4表示已完成并且已接收到全部数据。 - **status**:表示HTTP状态码,200表示成功。 ##### 2.4 局部更新...
通过在后台服务器加载和交换数据并使数据自动更新,Ajax可以实现网页的部分更新,无需重新加载整个页面。这不仅提升了用户体验,也降低了服务器的负担。 #### 实现原理 本例中的无刷新提交功能主要依赖于jQuery...
本文主要介绍如何使用php和jQuery ajax技术实现网页数据的实时刷新显示。具体来说,就是通过JavaScript的定时器,每隔一定时间就向服务器发送请求,获取最新的数据,然后在前端页面上实时更新这些数据,以实现数据的...