+ -
当前位置:首页 → 问答吧 → 我的ajax不能更新div标签的内容

我的ajax不能更新div标签的内容

时间:2011-08-30

来源:互联网

我利用ajax在后台更新了数据,把数据放到一个div标签中,用alert()函数把更新后的div标签内容读出来发现确实是新内容,但是页面上的内容依然是旧的,各位帮我看看怎么回事吧。代码如下:
HTML code

<div id="discuss_cont">
    <c:forEach items="${requestScope.discussList }" var="discuss" >
        <div>
            ${discuss.contents }
            <hr/>
        </div>
    </c:forEach>
                    
    共${requestScope.pageCount }页,第${requestScope.page }页 | <p onclick="ajax_changeDiscussPages(1,${requestScope.code.id },${requestScope.page -1})">上一页</p>
                    | <p onclick="ajax_changeDiscussPages(1,${requestScope.code.id },${requestScope.page +1})">下一页</p>
                    
</div>


上面是相关html代码,目的就是点击下一页上一页的时候要更新这个div里面的内容。
js代码如下:
JScript code

//通过ajax方式评论页码换页
function ajax_changeDiscussPages(type,id,page){
    createXmlHttp();
    xmlHttp.open("POST","./DiscussServlet?action=changeDiscussPage&type="+type+"&id="+id+"&page="+page);
    xmlHttp.onreadystatechange = changeDiscuss;
    xmlHttp.send(null);
    document.getElementById("discuss_cont").innerHtml = "";
}

//刷新评论内容
function changeDiscuss(){
    if(xmlHttp.readyState == 4){
        if(xmlHttp.status == 200){
            var  discussContents = xmlHttp.responseText;
            document.getElementById("discuss_cont").innerHtml = discussContents; 
            alert(document.getElementById("discuss_cont").innerHtml); 
        }
    }
}


我在changeDiscuss函数里加了alert函数来打印discuss_cont里面的内容,发现是新内容,但是页面上却一直是旧内容。

作者: lxlsoft   发布时间: 2011-08-30

xmlHttp.onreadystatechange = changeDiscuss();

作者: zsx841021   发布时间: 2011-08-30

引用 1 楼 zsx841021 的回复:

xmlHttp.onreadystatechange = changeDiscuss();

大哥,不是这样的,这里不能加括号

作者: lxlsoft   发布时间: 2011-08-30

可能跟页面缓存有关,请求页面的地址后面加个时间戳或随机数的参数试试。
xmlHttp.open("POST","页面地址" + "&timestamp=" + new Date().getTime());

作者: slowhand   发布时间: 2011-08-30