2

Tomcat7 WebサーバーでCORSをセットアップして、別のWebアプリケーションからxmlファイルを取得できるようにしました。私が直面している問題は、xml ファイルの内容を変更すると、ブラウザーを更新しても変更が表示されず、サーバーを再起動して変更を確認する必要があることです。

どうすれば解決できるのか知りたいです。また、ブラウザを更新せずに変更を取得することは可能ですか??

<html>
<body>
<h1>W3Schools Internal Note</h1>
<div>
<b>To:</b> <span id="to"></span><br />
<b>From:</b> <span id="from"></span><br />
<b>Message:</b> <span id="message"></span>
</div>
<script>
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","http://localhost:8080/test-app/note.xml",true);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;

document.getElementById("to").innerHTML=
xmlDoc.getElementsByTagName("to")[0].childNodes[0].nodeValue;
document.getElementById("from").innerHTML=
xmlDoc.getElementsByTagName("from")[0].childNodes[0].nodeValue;
document.getElementById("message").innerHTML=
xmlDoc.getElementsByTagName("body")[0].childNodes[0].nodeValue;
</script>

</body>
</html>
4

2 に答える 2

0

要素を完全に制御したい場合は、extjs を使用して Excel をグリッドにロードできます。また、ページ全体を更新せずに、変更された部分を更新できます。

私はCORSを使用しませんでした。ただし、txt ファイルにアクセスして、キャッシュまたは Excel に関連していることを確認することもできます。

于 2013-03-19T03:47:37.583 に答える
0

get メソッドを使用して xml データを取得しています。そのため、xml ファイルに変更を加えると、ブラウザーはキャッシュ バージョンを取得するだけで、サーバーから実際にダウンロードすることはありません。ブラウザのこの動作は、特に IE で対処するのが非常に厄介です。ただし、リクエスト先の URL に一意のタイムスタンプ ID を追加することで、この問題を簡単に修正できます。

例えば-

http://localhost:8080/test-app/note.xml?timestamp=12345

質問の 2 番目の部分については、ページを更新せずに変更された xml データを取得することは可能ですが、そのためには、ajax long polling または websocket をアプリケーションに実装する必要があります。

于 2013-03-19T04:11:39.963 に答える