紧急求助:JavaScript 嵌套jsp的问题

java1232 2007-01-13 11:42:01
我要实现一个提醒器的功能。
利用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>
基本功能是实现了,但是好像并不是每次都调用数据库,例如我打开页面时,查到有新数据,弹出提示,然后我查看后,将该信息的状态改变,如果是调用数据库的话,就不会再弹出提示了,但现在是提示总是不断的弹出,只有刷新该页后,才不再弹提示信息。
请高手指点一二。
...全文
300 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
baishuijiang5 2007-02-22
  • 打赏
  • 举报
回复
up
java1232 2007-01-15
  • 打赏
  • 举报
回复
谢谢楼上各位!
<META HTTP-EQUIV="pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
<META HTTP-EQUIV="expires" CONTENT="0">
这些加上不起作用。
我用XMLHttpRequest写完后,不知如何判断xmlhttp.responseText 取得的值,用这种方式好像不行,xmlhttp.responseText=="" ,
我是这样判断的:
function processRequest() {
if (http_request.readyState == 4) { // 判断对象状态
if (http_request.status == 200) { // 信息已经成功返回,开始处理信息
xmlDoc=http_request.responseText;
if(xmlDoc==""){}else {


window.open("list.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 { //页面不正常
alert("您所请求的页面有异常。");
}
}
}
但是无论有无内容,都会弹出窗口。请教各位,若使其为空时不弹出窗口的判断应该如何写?
孟子E章 2007-01-13
  • 打赏
  • 举报
回复
你没必要这么写,嵌套解决不了问题。使用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教程
indenty 2007-01-13
  • 打赏
  • 举报
回复
ajax是个比较好的解决方式
当然用js调用jsp也是对的,因为jsp本身也是class类的(对于服务器而言).
我觉得可能问题出在IE缓存了jsp,所以一定要刷新后才行
要在
<head>中加入
<META HTTP-EQUIV="pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
<META HTTP-EQUIV="expires" CONTENT="0">
试一试
thevone 2007-01-13
  • 打赏
  • 举报
回复
JS函数调用JSP?
只能是jsp生成js.
js是调不了jsp的.
客户端的js直接调服务器是不行的。
楼上说的对。 用ajax才可以调服务器.

87,922

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧