怎么用Ajax实现jsp页面局部实时刷新(紧急求救,在线等大虾帮忙) 我要实现的功能:类似优酷视频的留言板,大家一起看视频可以提问题,点击提交后问题进入数据库,页面下面是即时更新显示所有观看者提出的问题。知道可以用Ajax做,希望大虾给个示例代码。先谢谢啦 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 急有什么用呢?先说说你会多少ajax的东西吧. 呵呵,工作要做的东西啊,我ajax只写过异步验证,我是刚进一个公司的小程序员 使用 setTimeout和setIntervalhttp://book.csdn.net/bookfiles/344/10034413534.shtml IBM有专栏,看了就明了了,去ibm搜ajax function submitQA() { document.qasubmit.body.value = ""; qahint.innerHTML = "<b> 您的发言已经提交,欢迎继续发言。谢谢。</b>"}//点击问题提交调用function readySubmit() { //setTimeout(submitQA, 1000); setTimeout(function(){assign('target')} , 0);}//异步加载数据处理页面function load(id) { assign(id); setTimeout(function () { load(id); },15000);}//往主页div插入一个页面function assign(id){ /* Create a new XMLHttpRequest object to talk to the Web server */ var xmlHttp;try { // Firefox, Opera 8.0+, Safari xmlHttp=new XMLHttpRequest(); }catch (e) { // Internet Explorer try { xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { alert("您的浏览器不支持AJAX!"); return false; } } } var url='qalist.jsp?forumId=<%=forumId%>'; xmlHttp.open('get',url,true); xmlHttp.onreadystatechange=function(){ if(xmlHttp.readyState==4){ document.getElementById(id).innerHTML=xmlHttp.responseText; //alert(req.responseText); } } xmlHttp.send(null);} ajax你不是写出来了么?还有什么问题么?无非就是ajax请求过去把所有的聊天记录查出来,然后返回给页面用一定的格式显示就可以了。我相信你做过ajax异步验证做这个一定没问题。 现在有个问题是我一提交问题时,主页面局部已经能刷新问题了,但是浏览器会开一个页面里面的内容就是单独的聊天记录,就是嵌入到主页面div里面的那个Jsp.不知道这是什么问题 你是先把返回的数据在一个jsp里面展示出来,再将div的innerHtml设置为这个jsp内容么? 嗯,首先<BODY topMargin=0 leftMargin=0 onload="load('target')">就加载进那个内嵌的jsp也就是问题的页面。//异步加载数据处理页面function load(id) { assign(id);//把问题展示页面内嵌到视频页面下部的一个div中的方法 setTimeout(function () {//有多人在看在线视频 15秒刷新下 load(id); },15000);} function load(id) {assign(id);setTimeout(function () { load(id); },15000);} 这个是什么意思?还带嵌套的是么?感觉你说的这个现象,好像和ajax没什么关系,是你的页面js出错了。ajax返回的数据,用js直接处理不就行了么?怎么又扯上jsp了? 因为是在需求是类似在线视频会议的,一个人提交问题是下面问题显示框立即刷新,其他人也开了这个视频页面他也要看到这个问题的刷新,所以这个方法是所以打开的页面运用定时器定时局部刷新也就是定时用ajax加载问吧。 没理解什么意思,用iframe来做可以解决吗? 楼主去查查 DWR ,我用着不错 呵呵,公司之前这个就是用Iframe做的,但是用iframe做不利于搜索引擎搜索,因为提问对搜索引擎搜索有价值。所以要改成ajax做便于搜索引擎搜索。问题提交局部刷新已解决,就是提交问题局部刷新的同时会另外单独打开一个页面:就是主页面局部刷新的那个jsp ⊙﹏⊙b汗我找出原因了:这个功能之前是用iframe做的,用于输入和提交问题的form在主页面a.jsp,这个form有一个target,from把数据提交给action 打开显示所有提问内容的target页面即b.jsp.但是因为是iframe做的a.jsp里用<Iframe name=b src="b.jsp?forumId=<%=forumId%>" scrolling=yes></Iframe> 硬是把新开的b.jsp嵌入到自己页面中,所以没有单独打开一个只显示提问内容的b.jsp. 我现在用ajax做,提交数据的from有target的话就会打开一个只显示提问内容的b.jsp.form里不写target的话就是b.jsp替换a.jsp 即只打开了b.jsp. 囧!!!!这个问题怎么解决啊。 =。=!暂时用了一个很正规的方法,在b.jsp加载数据没有显示时利用window.close();直接关掉b.jsp。 Spring与Hibernate整合事务异常 关于ssh+jquery 不能执行回调函数,求帮助! 时间格式问题 一个很棘手的问题 Struts FormBean乱码问题 求 webwork+连接池 例子 不知道怎么错了 循环后如果计算结果 #### 大侠帮我啊,不会写JavaBean,已经有了Java陈许,帮我看看,很急啊。。。。。 ### 使用upload()出现问题 关于处理Flash显示问题? 我的jsp页面不能解析,一刷新就出现源代码了
先说说你会多少ajax的东西吧.
使用 setTimeout和setInterval
http://book.csdn.net/bookfiles/344/10034413534.shtml
document.qasubmit.body.value = "";
qahint.innerHTML = "<b> 您的发言已经提交,欢迎继续发言。谢谢。</b>"
}//点击问题提交调用
function readySubmit() {
//setTimeout(submitQA, 1000);
setTimeout(function(){assign('target')} , 0);
}//异步加载数据处理页面
function load(id) {
assign(id);
setTimeout(function () {
load(id);
},15000);
}//往主页div插入一个页面
function assign(id){
/* Create a new XMLHttpRequest object to talk to the Web server */
var xmlHttp;try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{ try
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
alert("您的浏览器不支持AJAX!");
return false;
}
}
}
var url='qalist.jsp?forumId=<%=forumId%>';
xmlHttp.open('get',url,true);
xmlHttp.onreadystatechange=function(){
if(xmlHttp.readyState==4){
document.getElementById(id).innerHTML=xmlHttp.responseText;
//alert(req.responseText);
}
}
xmlHttp.send(null);
}
//异步加载数据处理页面
function load(id) {
assign(id);//把问题展示页面内嵌到视频页面下部的一个div中的方法
setTimeout(function () {//有多人在看在线视频 15秒刷新下
load(id);
},15000);
}
assign(id);
setTimeout(function () {
load(id);
},15000);
}
这个是什么意思?还带嵌套的是么?
感觉你说的这个现象,好像和ajax没什么关系,是你的页面js出错了。
ajax返回的数据,用js直接处理不就行了么?怎么又扯上jsp了?
因为是在需求是类似在线视频会议的,一个人提交问题是下面问题显示框立即刷新,其他人也开了这个视频页面他也要看到这个问题的刷新,所以这个方法是所以打开的页面运用定时器定时局部刷新也就是定时用ajax加载问吧。
没理解什么意思,用iframe来做可以解决吗?
呵呵,公司之前这个就是用Iframe做的,但是用iframe做不利于搜索引擎搜索,因为提问对搜索引擎搜索有价值。所以要改成ajax做便于搜索引擎搜索。问题提交局部刷新已解决,就是提交问题局部刷新的同时会另外单独打开一个页面:就是主页面局部刷新的那个jsp
我现在用ajax做,提交数据的from有target的话就会打开一个只显示提问内容的b.jsp.form里不写target的话就是b.jsp替换a.jsp 即只打开了b.jsp. 囧!!!!这个问题怎么解决啊。