обновление объектов из XML-файла через JavaScript (проблема IE) - PullRequest
1 голос
/ 31 октября 2011

Я столкнулся с проблемой с простым кодом JavaScript, который в значительной степени является просто копией кода здесь: http://www.w3schools.com/xml/xml_to_html.asp

<html>
<head>

<script type="text/javascript">
function displayMain()
{
  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","catalog.xml",false);
  xmlhttp.send();
  xmlDoc=xmlhttp.responseXML; 

  x=xmlDoc.getElementsByTagName("VAR");
  i=0;

  variable1=(x[i].getElementsByTagName("VARIABLE")[0].childNodes[0].nodeValue);
  name1=(x[i].getElementsByTagName("NAME")[0].childNodes[0].nodeValue);
  value1=(x[i].getElementsByTagName("VALUE")[0].childNodes[0].nodeValue);
  txt="Variable: " + variable1 + "<br />Name: " + name1 + "<br />Value: "+ value1;
  document.getElementById("mainDiv").innerHTML=txt;
}

</script>
</head>
<body onload="displayMain(); setInterval('displayMain()', 1000)">

<div id='mainDiv'></div>

</body>
</html>

Все, что я хочу сделать, это изменить файл XML и, таким образом, обновить новое значение на странице. Так, например, я изменяю значение в файле XML, которое будет отражено на странице HTML. Он прекрасно работает на Firefox и Chrome, но не на IExplorer. IE просто сохраняет там мое старое значение, даже когда я обновляю страницу. Единственный способ получить обновление - удалить временную. файлы и история. Кто-нибудь знает способ обойти это? Для пользователя это не кажется очень практичным.

1 Ответ

2 голосов
/ 31 октября 2011

GET-запросы кешируются.Не устанавливать заголовки кэша на сервере.

или

Добавить параметр строки случайного запроса

xmlhttp.open("GET","catalog.xml?qs=" + new Date().getTime(),false);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...