читать 2 текстовых файла с помощью JavaScript - PullRequest
1 голос
/ 19 сентября 2011

Я не могу получить javascript для загрузки 2-х текстовых файлов с обычным скриптом или запросом, и мне нужна помощь, пожалуйста, дайте и ответьте?

вот с jquery,

<script type="text/javascript">
setTimeout(function(){
   window.location.reload(1);
}, 1000);
</script>
<script language="javascript" src="file:///Users/trevor/Desktop/jquery.js" ></script>
<script type="text/javascript">
jQuery.get('file:///Users/trevor/Desktop/x.txt', function(data) {
    document.getElementById('xp').innerHTML = data;
});
</script>
<script type="text/javascript">
jQuery.get('file:///Users/trevor/Desktop/y.txt', function(data) {
    document.getElementById('xp').innerHTML = data;
});
</script>
<p id="xp">hi</p>
<br>
<p id="yp">hi</p>

и без,

<script type="text/javascript">
var client = new XMLHttpRequest();
client.open('GET', 'file:///Users/trevor/Desktop/x.txt');
client.onreadystatechange = function() {
  document.getElementById('xp').innerHTML = client.responseText;
}
client.send();
</script>
<script type="text/javascript">
var client = new XMLHttpRequest();
client.open('GET', 'file:///Users/trevor/Desktop/y.txt');
client.onreadystatechange = function() {
  document.getElementById('yp').innerHTML = client.responseText;
}
client.send();
</script>

и возможно ...

<script type="text/javascript">
var x = document.getElementById('x').contentWindow.getElementById('xp').innerHTML

var y = document.getElementById('y').contentWindow.getElementById('yp').innerHTML

function updatex(){document.getElementById(xp).innerHTML = x}

function updatey(){document.getElementById(yp).innerHTML = y}

setInterval( "updatex(); document.getElementById('x').contentWindow.location.reload();", 1000 );

setInterval( "updatey(); document.getElementById('y').contentWindow.location.reload();", 1000 );


</script>
<p id="xp">hi</p>
<br>
<p id="yp">hi</p>

<iframe id="x" src="file:///Users/trevor/Desktop/x.txt"></iframe>

<iframe id="y" src="file:///Users/trevor/Desktop/y.txt"></iframe>  

1 Ответ

1 голос
/ 19 сентября 2011

Вы можете использовать setInterval для периодической загрузки файлов.Вот небольшой рефакторинг:

function loadFile(url, elementId){
    var client = new XMLHttpRequest();
    client.open('GET', url);
    client.onreadystatechange = function() {
      document.getElementById(elementId).innerHTML = client.responseText;
    }
    client.send();
}

Теперь вы можете вызывать это дважды, каждую секунду:

var interval = setInterval(function(){
                             loadFile('file:///Users/trevor/Desktop/x.txt', 'xp');
                             loadFile('file:///Users/trevor/Desktop/y.txt', 'yp');
                           },1000);

Некоторые примечания:

  • Это может работать с вашеголокальный компьютер, но не будет работать во всех браузерах, и определенно не будет работать один раз (/ если) страница находится на сервере.
  • Поскольку вызовы асинхронные, это возможно ответна старый вызов вернется после нового.Возможно, вы захотите сохранить старые client s и отменить их.
  • Если возможно, альтернативой является использование <iframe> s и простое их периодическое обновление.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...