日期:2014-05-16  浏览次数:20407 次

紧急求助:JavaScript 嵌套jsp的问题
我要实现一个提醒器的功能。
利用JS函数调用JSP,再用JSP调用数据库,如果有新数据就弹出一个提醒框。代码如下:
<script   language= "JavaScript "   type= "text/javascript ">
                    function   panDuan(){

      <%
                        UserInfo   userInfo   =   new   UserInfo();
List   list   =   new   ArrayList();
UserDAO   userOpDAO   =   new   UserDAO();

try   {

list   =   userOpDAO.getDao(Integer.parseInt(uid));

}   catch(Exception   ex)   {
System.out.println(ex.getMessage());
}
if(!list.isEmpty()){
for(int   i=0;i <list.size();i++)   {
                              DuanInfo   dInfo   =   (DuanInfo)list.get(i);
      int   fid=dInfo.getFaSong();
      int   id=dInfo.getId();
                              session.setAttribute( "id ",Integer.toString(id));
      session.setAttribute( "fid ",Integer.toString(fid));
      fname=userOpDAO.getNameById(fid);
      content=dInfo.getContent();
      session.setAttribute( "content ",content);
                              session.setAttribute( "fname ",fname);
//out.print( "xiao ");
}%>
                            window.open( "tishi.jsp ", "thishi ", "width=300,   height=300,   titlebar=1,toolbar=0,scrollbars=yes,location=0,statusbar=0,menubar=0,resizable=0,   screenX=120,   left=120,   screenY=120,   top=120 ");
   
<%}else{session.setAttribute( "fname ",fname);}%>


setTimeout( "panDuan(); ",1000);
  }
  window.onload   =   panDuan;
</script>
基本功能是实现了,但是好像并不是每次都调用数据库,例如我打开页面时,查到有新数据,弹出提示,然后我查看后,将该信息的状态改变,如果是调用数据库的话,就不会再弹出提示了,但现在是提示总是不断的弹出,只有刷新该页后,才不再弹提示信息。
请高手指点一二。

------解决方案--------------------
你没必要这么写,嵌套解决不了问题。使用xmlhttp或者ajax很好
function panDuan(){

var xmlhttp = new XMLHttpRequest()

xmlhttp.open( "GET ", "xxx.jsp ",false)
xmlhttp.send(null)
if(xmlhttp.status==200)
{
if(xmlhttp.responseText == "new ")
{
window.open( "tishi.jsp ", "thishi ", "width=300, height=300, titlebar=1,toolbar=0,scrollbars=yes,location=0,statusbar=0,menubar=0,resizable=0, screenX=120, left=120, screenY=120, top=120 ");
}
}
setTimeout( "panDuan(); ",1000);
}


tishi.jsp里得到新的信息,并更新数据库
思路就是这样的。
网上有很多XMLHttpRequest教程