解决方案 »
- input type=file 过滤上传文件只允许xls格式的
- The server encountered an internal error ()
- 在jsp中用动态级联怎么实现选项的跳转啊
- java.lang.IllegalStateException
- 问个struts标签使用的问题
- 关于引用URL的使用访问 求助(100分)
- jsp代码没错,却有红叉
- 【分享】Hibernate入门级项目全程实录完整版
- HTTP状态500怎么解决,初学者,求大神,下面是代码
- Failed to parse multipart request org.apache.commons.fileupload.FileUploadExcept
- 使用两次action就有两个id值吗??
- smartupload问题 求解
或者用iframe,直接刷新整个iframe,不过iframe的效率很低。
Ajax异步传输传输的信息一般都是比较小的,传输其实很快的。
附上一段我网站上的留言功能的AJax代码段吧。
我的功能是只显示最新的三条留言。
<script type="text/javascript">
/*通过异步传输XMLHTTP发送参数到ajaxServlet,返回符合条件的XML文档*/
var req=null;
function addMessage(){
var message=document.getElementById('message');
if(message.value==""){
alert("请输入留言内容");
}else{
getResult();
message.value="";
message.select();
}
}
function getResult() {
var message=document.getElementById('message');
var sendstr;
var url="http://192.126.119.139:8080/WebService/servlet/AjaxServlet?time="+new Date().toString();
if(message==null){
sendstr="";
}else{
sendstr = "sendmsg=" + message.value;
}
if(window.ActiveXObject)
{
req = new ActiveXObject('Microsoft.XMLHTTP');
}
else if(window.XMLHttpRequest)
{
req = new XMLHttpRequest();
}
if (req) {
req.onreadystatechange = complete;
req.open("POST", url);
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
req.send(sendstr);
}
}
function complete() {
if (req.readyState == 4) {
var v;
if (req.status==200) {
v = req.responseText;
showmsg(v);
}
if(req.status==0){
v = "抱歉,留言功能咱不支持你所使用的浏览器== ===抱歉,留言功能咱不支持你所使用的浏览器== ===抱歉,留言功能咱不支持你所使用的浏览器== ";
showmsg(v);
}
}
}
function showmsg(v){
var values=v.split("===");
if(values.length>0){
for(var i=0;i<values.length;i++){
if(values[i]!=null){
var values2=values[i].split("==");
document.getElementById("message"+(i+1)).innerHTML=values2[0];
document.getElementById("time"+(i+1)).innerHTML=values2[1];
}
}
}
}
window.onload=getResult();
</script>
</head>
type:"POST",
url:"DiscussQueryAction.action",
dataType:"JSON",
async:false,
data:{},
timeout:2000,
success:function(data,textStatus)
{
var datamgs=data.returndata;
$.each(datamgs,function(key,values){
$("#show").append("<textarea rows='8' cols='40' style='margin:5px; border:solid 1px #ccc; overflow: hidden; z-index: y;'>"+values.content+"</textarea>");
});
},
error:function(XMLHttpRequest,textStatus,errorThrown)
{
alert("XMLHttpRequest: "+XMLHttpRequest);
alert("error:"+textStatus);
alert("errorThrown:"+errorThrown);
}
});
我的是这样的;但还是没有达到预期效果
第二点、难道不是点击提交后,成功插入到数据库之后再将评论显示出来吗?
这种异步刷新是可以实现你说的功能的。
页面是立即显示评论的内容呀,没有查询数据库,而是在插入的时候,插入成功,返回一个状态吗,再将这个状态码以json的形式返回到前端,前端解析,判断,成功了显示,不成功不显示。