У меня есть тег Div, который содержит php для заполнения этого div информацией, которую я хочу сделать, так это сделать так, чтобы страница вызывалась каждые 15 секунд, чтобы она могла обновлять информацию там, не перезагружая всю веб-страницу. Я попытался сделать это с помощью JavaScript / jQuery, и я просто не могу заставить его работать
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js"></script> <script type="text/javascript"> var auto_refresh = setInterval( function () { $('.View').load('Small.php').fadeIn("slow"); }, 15000); // refresh every 15000 milliseconds </script> <div class="View"><?php include 'Small.php'; ?></div>
это то, что я получил после поиска некоторых, и что происходит, он загружает Small.php, но не обновляет его или не обновляет информацию каждые 15 секунд.
пожалуйста помоги!
Я должен добавить все мои php-массивы, которые должны отображаться, все они исполняются в Small.php, а страница, в которую я включаю, просто изолирована.
EDIT: What No One заметил, что мой первый скрипт, ссылающийся на jQuery, не имел закрывающего тега, и это нарушало мой второй скрипт. после добавления в правильный закрывающий тег скрипт, наконец, работал, но fadeIn не отображается должным образом, не используя сначала fadeOut.
Ваш код работает, но fadeIn
этого не делает, потому что он уже виден. Я думаю, что эффект, который вы хотите достичь: fadeOut
→ load
→ fadeIn
:
var auto_refresh = setInterval(function () { $('.View').fadeOut('slow', function() { $(this).load('/echo/json/', function() { $(this).fadeIn('slow'); }); }); }, 15000); // refresh every 15000 milliseconds
Попробуйте здесь: http://jsfiddle.net/kelunik/3qfNn/1/
Дополнительное уведомление: Как упоминалось в Khanh TO, вам может потребоваться избавиться от внутреннего кеша браузера. Вы можете сделать это, используя $.ajax
и $.ajaxSetup ({ cache: false });
или случайный хак, он упомянул.
попробуй это
<script type="text/javascript"> window.onload = function(){ var auto_refresh = setInterval( function () { $('.View').html(''); $('.View').load('Small.php').fadeIn("slow"); }, 15000); // refresh every 15000 milliseconds } </script>
.<script type="text/javascript"> window.onload = function(){ var auto_refresh = setInterval( function () { $('.View').html(''); $('.View').load('Small.php').fadeIn("slow"); }, 15000); // refresh every 15000 milliseconds } </script>
Ваш html не обновляется каждые 15 секунд. Причиной может быть кеширование браузера. Добавьте Math.random()
чтобы избежать кеширования браузера , и лучше подождать, пока DOM будет полностью загружен, как указано @shadow. Но я думаю, что основной причиной является кэширование
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js" /> <script type="text/javascript"> $(document).ready(function(){ var auto_refresh = setInterval( function () { $('.View').load('Small.php?' + Math.random()).fadeIn("slow"); }, 15000); // refresh every 15000 milliseconds }); </script>
Код, который вы используете, также будет включать эффект fadeout. Это то, чего вы хотите достичь? Если нет, возможно, имеет смысл просто добавить следующее INSIDE «Small.php».
<meta http-equiv="refresh" content="15" >
Это добавляет обновление каждые 15 секунд на страницу small.php, что должно означать, если PHP-скрипт вызван на другую страницу, перезагрузится только этот «фрейм».
Сообщите нам, если это сработало или решило вашу проблему !?
-Brad
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js" /> <div class="View"><?php include 'Small.php'; ?></div> <script type="text/javascript"> $(document).ready(function() { $('.View').load('Small.php'); var auto_refresh = setInterval( function () { $('.View').load('Small.php').fadeIn("slow"); }, 15000); // refresh every 15000 milliseconds $.ajaxSetup({ cache: true }); }); </script>