利用Ajax实现页面局部刷新

ajax操作json数组,实现局部刷新 自己写的一个demo,利用ajax回调php返回的json数据,并实现页面的局部刷新,方便大家学习使用, 立即下载

 2个文件 1个Html文件,一个Servlet

html 代码为:

<html>
<script>
  var xmlHttp;
 
  window.onload=function(){
   //alert("111");
  doStart();
  }
 
  function createXMLHttpRequest(){
   // alert("222");
  if(window.ActiveXObject){
   xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
   }
   else if(window.XMLHttpRequest){
   xmlHttp=new XMLHttpRequest();
   }
   }
  
   function doStart(){
   // alert("doStart");
   createXMLHttpRequest();
   var url="dyupdate.yy";
  
     xmlHttp.open("GET",url,true);
    xmlHttp.onreadystatechange=startcallback;
    xmlHttp.send(null);
    }
   
    function startcallback(){
     // alert("startcallback");
     if(xmlHttp.readyState==4){
        if(xmlHttp.status==200){
         //alert("正常");
            setTimeout("pollServer()",5000);
            refreshTime();
        }
        else{
        alert(xmlHttp.status);
    }
  }}

   
 function pollServer(){
// alert("pollServer");
    createXMLHttpRequest();
    var url="dyupdate.yy" 
     xmlHttp.open("GET",url,true);
    xmlHttp.onreadystatechange=pollcallback;
    xmlHttp.send(null);
    }
     function pollServer2(ob){
 // alert(ob);
    createXMLHttpRequest();
    var url="dyupdate.yy&task="+ob; 
     xmlHttp.open("GET",url,true);
    xmlHttp.onreadystatechange=pollcallback2;
    xmlHttp.send(null);
    }
   function pollcallback2(){ }
   
  function pollcallback(){
   // alert("pollcallback");
     if(xmlHttp.readyState==4){
        if(xmlHttp.status==200){
         //alert("11");
         
           var message=xmlHttp.responseXML.getElementsByTagName("message")[0].firstChild.data;
           alert(message);
           if(message!=""){
           var new_row=createRow(message);
           var table=document.getElementById("dyupdatearea");
           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();
           }
        else{
       doStart();
    }}
    else{
    alert(xmlHttp.status);
    }
    }
  }
   
   function createRow(message){
   // alert("createRow");
     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;
     }

function refreshTime(){
  //alert("refreshTime");
 var time_span=document.getElementById("time");
 var time_var=time_span.innerHTML;
 var int_val=parseInt(time_var);
 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;
 }
}
</script>
<body>
 <h1>利用Ajax</h1>
 <input type="button" value="加载" id="go" onClick="doStart();" />
   <p>
    页面将在<span id="time">5</span>秒后刷新
  </p>
  <table id="dyupdatearea" align="left" border="1">
   <tbody>
    <tr id="row0">
     <td></td>
    </tr>
   </tbody>
   
   <input type="text" id="55" name="text" />
   <input type="button" value="提交" onClick="pollServer2(document.getElementById('55').value)" />
   

  </table>
 </body>
</html>  
  

Servlet代码为:

import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
import java.util.LinkedList;

import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.RequestDispatcher;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ajax extends HttpServlet{
 int counter;
 private  static LinkedList list=new LinkedList();
public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{
  //response.setC("UTF-8");
 if(list.size()>0)
 {
  System.out.println(list.getFirst().toString());
 }
  System.out.println("已经执行了");
  //int no=1;
 
  String res="";
  String task=request.getParameter("task");
  if(task!=null&&!"".equals(task))
  list.add(task);
  String message="12";
  //String reNo="<count>0</count>"; 

 
//   if(task.equals("reset")){
//    counter=1;
//  }else{
//   switch(counter){
//    case 1:message="1";break;
//    case 2:message="2";break;
//    case 3:message="3";break;
//    case 4:message="4";break;
//    case 5:message="5";break;
//    default:message="done";
//   }
//   counter++;
//  }
 
  if(list.size()>0){
 message=list.removeLast().toString();
   }
   res="<message>"+message+"</message>";
  PrintWriter out=response.getWriter();
 
  response.setContentType("text/xml; charset=UTF-8");
 
  response.setHeader("Cache-Control","no-cache");
  out.println("<response>");
  out.println(res);
  out.println("</response>");
  out.close();
  }

//public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{
//   String text=(String)request.getParameter("text");
//   response.setContentType("text/xml; charset=UTF-8");
//   if(text!=null)
//   {
//    queue.add(text);
//   }
////     RequestDispatcher rd=this.getServletContext().getRequestDispatcher("/ajax.html");
////     rd.forward(request,response);
//}
 }

定时局部刷新table 自己项目中遇到的局部刷新,总结了一下 贴出来供大家分享一下! 局部刷新用ajax简单易懂 立即下载

相关推荐

使用Avalonia跨Linux平台

Avalonia类似使用WPF的技术方法来开发,所以,需要会使用WPF,其中的一些语法和写法与WPF有所区别,但是他们相差不大,会WPF的话,基本上可以看看文档后,完全掌握Avalonia的使用,从而达到跨平台开发的任务。其实写法有些不一样,可以参考官网的说明,进行修改。2. 安装完成后,重启VS2022,我们可以看到1和2,其中1是使用MVVM模式开发,2是普通模式开发,我们选择2,建立项目。9.直接双击粉红色的文件,进行安装,输入密码,但是美中不足的是,好像没有图标,图标似乎需要单独去设置。

故里2130 1万+

ajax刷新table里的内容,Ajax动态局部刷新table表格内容——jQuery代码示例

Ajax动态局部刷新table表格内容——jQuery代码示例发布时间:2019-04-02 01:37,浏览次数:2161, 标签:AjaxtablejQuery这是我的table表格,内容部分加了个Id=”tabletext“ ,用于后续获取数据覆盖区域align="center" border="0"> 任务ID 用户名 最后运行时间 数据包完成数量 数据包入库数量 ...

weixin_42469191的博客 2065

记录——影刀RPA高级操作题(二)——使用影刀RPA内置包和”Xpath“获取数据,获取数据写入目标MySQL

【代码】记录——影刀RPA高级操作题(二)——使用影刀RPA内置包和”Xpath“获取数据,获取数据写入目标MySQL。

m0_74824002的博客 841

ajax 异步刷新表格

举个栗子:按姓名查询学生 页面部分: <input type="text" class="input" name="stu_name" id="searchname" placeholder="请输入要查询的学生姓名"> <div class="search"><a class="searchbyname" onclick="queryStuByName()">查询</a> <table id="table1">

NYMMMmm的博客 1238

功能安全入门:手把手教你用IEC 62380标准计算芯片失效率(附SN 29500对比)

本文深入解析了IEC 62380标准在芯片失效率计算中的应用,对比了SN 29500的差异,并提供了实战案例和避坑指南。通过详细的参数获取方法和分步计算演示,帮助功能安全工程师准确评估芯片可靠性,确保设计符合安全要求。特别适合汽车电子和工业控制领域的专业人士参考。

weixin_30363981的博客 313

深入理解JVM虚拟机第一篇:Java跨平台和字节码以及多语言混合编程

本位描述了Java的跨平台和JVM的跨平台的作用,Java语言的字节码的概念多语言混合编程应用到JVM虚拟机以及Java发展的重大事件。

七叔的博客 1万+

AJAX局部刷新功能实现

Ajax局部刷新功能实现

just_learing的博客 3301

2024年CSP-X复赛真题题解(T1:购物)

2024年CSP-X复赛真题题解(T1:购物)

王老师青少年编程 1179

利用jQuery实现AJAX定时刷新局部页面实例

通过两种方法实例讲解ajax定时刷新局部页面,当然方法有很多种,也可以不使用ajax来刷新页面,可以使用jquery中的append来给指定内容加东西,但是都不太实用,最实用的方法还是ajax加载数据了。局部刷新我们讲述到最多的是ajax 了,当然也可以不使用ajax来刷新页面了,我们可以使用jquery中的append来给指定内容加东西了,当然最实用的还是ajax加载数据了。如果我只能刷新一个特定的页面的一部分,这将是很大的,例如:仪表盘上的交通灯显示系统状态。

1997

【Com通信】Com模块的事件帧发送及周期报文的快慢发送机制

Com模块的事件帧发送及周期报文的快慢发送机制

qq_36056498的博客 2334

基于自适应小波阈值算法的图像去噪

自适应小波阈值算法是一种基于小波变换的方法,它相对于传统的小波阈值去噪方法具有更好的性能和鲁棒性。该算法首先对图像进行小波变换,然后根据小波系数的大小确定一个自适应的阈值,将小波系数与阈值进行比较,大于阈值的系数被保留,小于阈值的系数被置零。在上述代码中,首先选取了小波函数sym4进行小波分解,然后根据标准差计算出阈值,使用wthresh函数进行阈值处理,最后进行反变换得到处理后的图像。该GUI界面与前面的自适应小波阈值算法代码结合,实现了图像的去噪,并提供了可视化的效果。

与其临渊羡鱼,不如退而结网 558

利用ajax实现页面的局部刷新

在web应用中,经常变化的是数据,但为了加载新数据就去从新加载页面,不仅麻烦,也不友好。今天我利用ajax实现了一个页面数据的局部刷新,效果如下: 表格中的信息每隔五秒后刷新,并从服务器端得到信息,加入table中。 下面介绍一下他的实现:onload()函数使页面加载时就被调用,这里介绍一下startcallback函数,其中的setTimeout函数是一

ccsky001的天空 4346

STM32F103/F407/H743不同GPIO速度配置(HAL库)对应的最高速度

详细介绍了STM32F103/F407/H743不同GPIO速度配置(HAL库)对应的最高速度。

kevin1499的博客 5588

利用ajax实现与php数据交互,并局部刷新页面

利用ajax实现与php数据交互,并局部刷新页面本文主要有以下几个要点: ajax的基本语法结构 jQuery基本语法 json数组基本结构 ajax回调函数中的json数组解析及局部刷新 php基本语法 ajax与php的对接 php中post数据提交方式与接收 ajax基本语法$.ajax({ type: "post", //数据提交方式(post/get) url: "dem

灵魂守护者 2万+

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

在JSF页面利用Ajax实现局部刷新

本人对JSF接触不久,所以很多知识都没有学到。这几天做项目用到两个问题: 1.点击测试按钮,刷新的是整个页面,这种效果对用户的感知度不好,希望达到的是局部刷新的目的。 2.点击测试按钮,load进度条执行后,会显示是否连接的提示信息,如果没有连接成功,会及时修改页面的数据,然后再点击按钮,提示信息应该清空,刚开始想用定时器在后台实现的,在前端也想用JS的,不过效果都不是太好,浪费了很多时间。

迟到的程序猿 5090

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

利用Ajax实现在页面显示局部刷新

使用三层架构(数据访问层、业务逻辑层、表示层)使得编程更加清晰。 util包,用于加载数据库驱动,获得驱动管理信息。 public Connection bdHelper{ private final String DRIVER ="com.mysql.jdbc.Driver"; private final String URL = "jdbc:mysql:/

SuchAblackMan的博客 1079

php实现点击局部刷新,利用ajax实现与php数据交互,并局部刷新页面

利用ajax实现与php数据交互,并局部刷新页面一、语法简介1.1 ajax基本语法$.ajax({type: "post", //数据提交方式(post/get)url: "http://xxx/test/demo.php", //提交到的urldata: {username:username,password:p...

weixin_39838758的博客 338

ajax异步加载实现局部刷新页面,C# 利用ajax实现局部刷新

5、CC2541芯片中级教程-OSAL操作系统(PWM&plus;看门狗)本文根据一周CC2541笔记汇总得来—— 适合概览和知识快速索引—— 全部链接: 中级教程-OSAL操作系统\OSAL操作系统-实验01 OSAL初探 [插入]SourceInsight-工程建立方法 ...expandlistviewpackage com.exaple.zhonghe2; import java....

weixin_39629780的博客 361
下一篇: Tomcat 自带的例子分析(Jsp部分)(上)
NetFishTail
博客等级 码龄19年 3粉丝 120原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值