2015-10-10 3 views
2
<script type="text/javascript" src="http://code.jquery.com/jquery-1.10.1.min.js"></script> 
<script> 
$(document).ready(function() { 
    setInterval(function() { 
     $.get('points.txt', function(data){ 
      $('#show').html(data); 
     },1000); 
    }); 
}); 
</script> 

<div id="show"></div> 

У меня есть приведенный выше скрипт, а в points.txt есть число, которое продолжает меняться.AJAX Refresh Div Не работает

Предполагается, что каждый раз обновлять div.

Теперь по какой-то причине сценарий не работает. Что я делаю не так?

+0

'# IndentingCode' помогает вам понять проблемы. ':)' –

ответ

3

Ваш второй параметр функции синхронизации не предоставляется для setInterval, а не для get. Также я предполагаю, что ваш запрос получает кеширование. Попробуйте это:

$(document).ready(function() { 
    setInterval(function() { 
    $.get('points.txt?' + (new Date).getTime(), function(data){ 
     $('#show').html(data); 
    }); 
    }, 1000); 
}); 

Или скажите AJAX, не кэшировать данные:

$.ajaxSetup({ 
    cache: false 
}); 
+0

Итак, что вы говорите, мой сценарий должен работать, если кеш отключен? –

+0

@HackedFiles За секунду до того, как вы запросили файл 'points.txt'. Итак, что происходит, 'cache' по умолчанию является' true'. Поэтому браузер берет его из кеша, а не повторно запрашивает с сервера. –

+0

@HackedFiles Кроме того, у вас есть ошибка в 'setInterval'. Проверьте это. Вы не передаете параметр '1000' в setInterval, но вы делаете это для' $ .get'. –

2

Я считаю, что это неправильное форматирование кода. Параметр 1000 добавляется как третий параметр в функцию get. Вместо этого это должно быть так:

$(document).ready(function() { 
    setInterval(function() { 
     $.get('points.txt', function(data){ 
      $('#show').html(data); 
     }); 
    },1000); 
});