使用Ajax实现页面的局部刷新

一.不依赖jquery时是这样的用法:

var xhr=new XMLHttpRequest();
xhr.onreadystatechange=function(event)
{
if(xhr.readyState==4&&xhr.status==200)
{
document.getElementById("line_count").innerHTML=xhr.responseText;
}
}
xhr.open('Get','Count',true);
xhr.send();

Count是web.xml中配置的,指向后端servlet文件,点击刷新执行该方法,局部修改line_count这个文本,

从而达到ajax局部刷新的目的

二.引入jquery.js,实现一个定时刷新在线人数,视频依旧播放的功能

index.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.text.*" %>
<%@ page import="java.util.*" %>
<!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=ISO-8859-1">
<title>Insert title here</title>
<script src="js/jquery-3.3.1.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script>
function onQuery()
{
jQuery.ajax
(
{
method:"Get",
url:"Count",
success:function(data,textStatus,jqXHR)
{
$("#line_count").html(data);
},
error:function(jqXHR,textStatus,errorThrown)
{
alert(errorThrown);
}
}
);
}
function timedCount()
{
onQuery();
t=setTimeout("timedCount()",1000)
}
$(document).ready(function(){
timedCount();
});
</script>
</head>
<body>
<p> 当前共: <span id="line_count" sytle="color:red">0</span>在线人数</p>
<a href="javascript:onQuery()">刷新</a> <br/>
<video src="mp4/1.mp4" width=400 height=320 controls="controls"></video>
</body>
</html>

点击刷新按钮,会刷新line_count的文本,在html加载完毕会执行ready函数,启动一个自己实现的定时器

会一直定时刷新line_count的文本,jquery.timer.js也封装了一个timer,但这个例子中用的是用原生js自己实现的定时器

url:Count指向AjaxServlet.java

AjaxServlet.java——简单返回一个随机数:

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
Random aRandom=new Random();
int count=aRandom.nextInt(1000);
PrintWriter out=response.getWriter();
out.write(String.valueOf(count));
}

效果:

最新文章

  1. [转]CSS hack大全&amp;详解
  2. Thinkphp框架感悟(一)
  3. linux命令每日一练习-top free
  4. 20150625_Andriod_02_ListView2_多条目显示_选中
  5. ti processor sdk linux am335x evm /bin/setup-host-check.sh hacking
  6. Qt中文件操作遇到的(变量,容器,结构体)
  7. struts2错误验证
  8. [LeetCode] Min Cost Climbing Stairs 爬楼梯的最小损失
  9. 调试 - Chrome调试
  10. PyQt5——布局管理
  11. UpdatePanel1里面使用FileUpload控件
  12. 【LeetCode每天一题】String to Integer (atoi)(字符串转换成数字)
  13. 【Python】【有趣的模块】【requests】【二】快速上手
  14. ACM__最小生成树之prime
  15. 【转载】webstorm忽略node_modules目录
  16. Windows下MFC程序利用LockCop解决死锁
  17. 基于qml创建最简单的图像处理程序(1)-基于qml创建界面
  18. Java多线程之内存可见性和原子性:Synchronized和Volatile的比较
  19. PHP:第三章——PHP中函数的实参多余形参的处理方法
  20. 啰里吧嗦redis

热门文章

  1. 一.ES6的开发环境搭建
  2. leetcode-86-分割链表
  3. day04 - linux常用命令、目录说明以及ubuntu解锁root用户,安装tree命令
  4. Django实现简单的图书管理系统
  5. Joomla - 菜单系统 (从创建到前端页面显示的过程)
  6. java基础之Character类概述
  7. RQNOJ--160 竞赛真理(01背包)
  8. 从一个prismWpfMVVM的例子中学到的
  9. 前端面试题(js部分)
  10. STL与泛型编程-学习2-GeekBand