台灣最大程式設計社群網站
線上人數
1147
 
會員總數:245214
討論主題:189087
歡迎您免費加入會員
討論區列表 >> AJAX / JSON / jQuery >> AJAX為何不能更新內容
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
AJAX為何不能更新內容
價值 : 100 QP  點閱數:1855 回應數:5

樓主

WELLS
初學者
329 8
612 55
發送站內信

大大們
我寫了一隻AJAX,他每5秒會去抓一隻XML的資料來局部更新畫面,我的問題是,第一次都會更新內容
但是第二次以後抓的資料都是舊的,除非我關掉視窗開一個新的才會抓到新的資料
以下是我的AJAX

timerID2 = setTimeout("PageRefresh2();",5000);
var xmlHttp;
function PageRefresh2(){

var rc=startRequest();

timerID2 = setTimeout("PageRefresh2();",5000);
}

//上面是每5秒更新
function createXMLHttpRequest() {
if (window.ActiveXObject) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
}
}
function startRequest() {
createXMLHttpRequest();
document.getElementById("results").innerHTML = "<div id='results'> </div>";
xmlHttp.onreadystatechange = handleStateChange;
xmlHttp.open("GET", "now_index.xml", true);
xmlHttp.send(null);
}

function handleStateChange() {
if(xmlHttp.readyState == 4) {
if(xmlHttp.status == 200) {
rc = xmlHttp.responseText;
alert("rc-2"+rc)//發現出來的資料都未更新
var div = document.createElement("div");
div.innerHTML = xmlHttp.responseText;
document.getElementById("results").appendChild(div);

}
}
}
----------------------------------------------------
以下是我的XML
<table>
<tbody>
<tr class="word2">

<td height='21' align='center'>6669.06</td>
<td height='21' align='center'>-55.79</td>
</tr>
<tr class="word2" >

<td height='21' align='center'>9607.03</td>
<td height='21' align='center'>-66.97</td>
</tr>
</tbody>
</table>
裡面的數字..每五秒都會更新..這部分是沒問題的
但是被上面的AJAX抓去後只會更新第一次....
我在ASP上已寫了...
<%Response.Buffer=True%>
<%Response.CacheControl = "no-cache" %>
<%Response.AddHeader "Pragma", "no-cache" %>
<%Response.Expires = 0 %>
所以請問...我那兒錯了
感謝回答


搜尋相關Tags的文章: [ AJAX ] , [ ASP ] , [ XML ] ,
本篇文章發表於2007-07-11 17:40
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
作者回應

WELLS
檢舉此回應
對不起
我有個地方沒說清楚
如果我直接去開XML..發現他是有更新的
但是AJAX卻都抓到第一次打開視窗的資料
........重新整理也不會更新
除非我把視窗關掉..開一個新的才會更新一次
本篇文章回覆於2007-07-11 17:43
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

Phil
捐贈 VP 給 Phil 檢舉此回應
<%Response.Expire=-1%>
<%Response.Buffer=True%>
本篇文章回覆於2007-07-11 18:00
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

WELLS
檢舉此回應
Phil大大
這個我一開始就加了...
我還多寫了
<%Response.CacheControl = "no-cache" %>
<%Response.AddHeader "Pragma", "no-cache" %>
結果就是不會更新
本篇文章回覆於2007-07-12 08:54
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
最有價值解答

Bryan(不來ㄣ)
捐贈 VP 給 Bryan(不來ㄣ) 檢舉此回應
maybe try this way


http://blog.csdn.net/caterpillar_here/archive/2007/02/21/1512415.aspx
文章最後有提到
本篇文章回覆於2007-07-12 09:42
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
作者回應

WELLS
檢舉此回應
感謝Bryan

本篇文章回覆於2007-07-12 10:13
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.