2013-07-16 4 views
4

HTML 및 Java 스크립트로 작업하기 시작했습니다. 나는 그 사이에 갇혀있다. XML에서 데이터를 읽고 페이지에 표시하는 하나의 웹 페이지를 만들었습니다. 나는 그것을 성공적으로 할 수있다. 그러나 XML 데이터를 변경하고 브라우저를 새로 고치면 내 웹 페이지에 업데이트 된 데이터가 반영되지 않습니다. 브라우저 기록을 수동으로 지우고 페이지를 새로 고침하면 업데이트 된 데이터가 표시됩니다. 그러나 페이지를 새로 고치자 마자 데이터가 업데이트되기를 원합니다. 매번 브라우저 기록을 지우고 싶지 않습니다.Ajax 응답 캐싱 방지

제 서버가 아파치 서버입니다.

내 HTML 코드 :

<!DOCTYPE HTML PUBLIC "- HTML 4.0 Transitional//EN"> 

<html> 
<TITLE>DynamicHTML Page</TITLE> 

<META content="text/html; charset=windows-1252" http-equiv=Content-Type> 
<META http-equiv="cache-control" content="no-cache"> 
<meta http-equiv="expires" content="0"> 
<META http-equiv="refresh" content="10";> 
<META name=Author content=""> 
<META name=Keywords content=""> 

<body> 

</div> 
<xml ID="noteXML" 
SRC="note.xml"></xml> 
<script> 

function ReadXML() 
{ 
if (window.XMLHttpRequest) 
    {// code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest(); 
    } 
else 
    {// code for IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
xmlhttp.open("GET","note.xml",false); 
xmlhttp.send(); 
xmlDoc=xmlhttp.responseXML; 

document.getElementById("data").innerHTML= xmlDoc.getElementsByTagName("data")[0].childNodes[0].nodeValue; 
document.getElementById("status").innerHTML= xmlDoc.getElementsByTagName("status")[0].childNodes[0].nodeValue; 

} 

</script> 

<div> 
<b>Require Data :</b> <span id="data"></span><br /> 

<div> 
<b>Current Status:</b> <span id="status"></span><br /> 

<script> 
ReadXML(); 
</script> 
</body> 
</html> 

내 XML : 나는 또한 cashe를 작성하지 않습니다 있는지 브라우저를 만들기 위해 다음과 같은 노력했다

<?xml version="1.0" encoding="ISO-8859-1"?> 

<note> 
<data> 450 </data> 
<status> Reading Data From XML </status> 
</note> 

,하지만 아무것도 작동하는 것 같군.

<META http-equiv="cache-control" content="no-cache"> 
<meta http-equiv="expires" content="0"> 
<META http-equiv="refresh" content="10";> 
+0

'xmlhttp.open ("GET", "note.xml? t ="+ (새 날짜()), 거짓),' –

+0

답장을 보내 주셔서 감사합니다 Dharmesh ...... 이것을 시도합니다 –

+0

환영합니다 'Math.random()'과는 달리 항상 작동 할 것처럼이 솔루션을 사용하십시오. 이후의 요청에서 동일한 난수를 얻을 수 있기 때문에 시간이 항상 유일 할 것이고 결코 실패하지 않을 것입니다. –

답변

2

당신은 당신의 파일에 임의의 숫자를 추가 할 수 있습니다 : 그것은 캐시가 임의 일치하는 캐시 된 버전을 찾을 수 없을 것이기 때문에이 브라우저는 항상 최신 버전을 얻을 수 있도록한다

xmlhttp.open("GET","note.xml?" + Math.random(),false); 

.

+0

답장을 보내 주셔서 감사합니다 ... 나는 이것을 시도 할 것입니다 –

+0

많은 친구들에게 고마움을 느낍니다 ... 지난 2 일 이래로 노력하고있었습니다 ... 저에게 도움이되었습니다 ..... 다시 한번 감사드립니다. –