网页无闪自动局部刷新实例_JSP教程

编辑Tag赚U币
教程Tag:暂无Tag,欢迎添加,赚取U币!

推荐:实现将子页的表单值返回到父页的表单中
研究了一天终于写好了,还是网络资源丰富,总有高人指点!:) 父页:send_message.jsp script language=javascript type= //open win function g_OpenWindow(pageURL, innerWidth, innerHeight) { var ScreenWidth=screen.availWidth var ScreenHeight=sc

我们在网页制作的过程中经常会遇到及时刷新数据的问题,如果使用<meta http-equiv=refresh content="300">的方法,会造成整个屏幕不断闪烁刷新的效果,这会降低用户的操作满意度。所以我们需要一种可以实现无闪自动刷新数据的方法来解决以上问题。

实例解决问题:

希望实现用户在进入系统以后(整个session的时效之内),如果收到新邮件则发出声音提示。

实现思路:

1.首页部分:<body onload="init('<%=ses_userBean.getUsername()%>');"> // load时调用init(user);

2.js部分:用XMLHTTP实现页面局部刷新,调用check_mail.jsp对后台数据库进行检索判断并返回结果。

 

  1. <!-- 
  2. var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
  3. var checkresult=null
  4. var username =null;  
  5.  
  6. function init(user){ 
  7. username=user; 
  8. window.setInterval('Checkmail()',5000);//每隔5秒自动调用Checkmail() 
  9.  
  10. function Checkmail() 
  11. xmlhttp.open("POST""check_mail.jsp?uName="+username, false); 
  12. xmlhttp.onreadystatechange = updatePage; 
  13. xmlhttp.send(); 
  14. function updatePage() { 
  15. if (xmlhttp.readyState < 4) { 
  16. test1.innerHTML="loading..."
  17. if (xmlhttp.readyState == 4) { 
  18. var response = xmlhttp.responseText; 
  19. if(response==1){//判断为假 
  20. test1.innerHTML="&nbsp;"
  21. checkresult=1; 
  22. else{//判断为真 
  23. test1.innerHTML="<img alt='新邮件' src='img/tp024.gif'><EMBED src='music/nudge.wma' hidden=true autostart=true loop=false>"
  24. checkresult=0; 
  25. // --> 

3.check_mail.jsp

  1. <%@ page contentType="text/html; charset=GBK" %> 
  2. <%@ page errorPage="error/login_error.jsp"%> 
  3. <%@ page import="myweb.*" %> 
  4. <%@ page import="java.sql.*" %> 
  5. <% 
  6. String user=request.getParameter("uName"); 
  7. Connection conn=null
  8. try
  9. conn=DBConnection.getConnection(); 
  10. PreparedStatement pStat=conn.prepareStatement("select * from message where r_name='"+user+"' and status=0"); 
  11. ResultSet rs=pStat.executeQuery(); 
  12. if(rs.next()){//有记录 
  13. response.getWriter().print(0); 
  14. }else
  15. response.getWriter().print(1); 
  16. }finally
  17. if(conn!=null) conn.close(); 
  18. %> 


4.首页结果显示

将<span id="test1"></span>插入指定位置。
 

分享:JSP保存用户上次登录时间详细代码
代码是以Access库为例,日期对象使用的java.sql.Date()类型,因为据测试java.util.Date类型是不能添加到DateTime类型的字段中的:作者:淘特网 出处:http://www.tot.name import java.sql.*; import java.text.*; /** * 代码 */ public class MSAccessDB { p

来源:模板无忧//所属分类:JSP教程/更新时间:2012-06-11
相关JSP教程