AJAX: отображать случайную строку каждую минуту - PullRequest
1 голос
/ 26 июня 2011

У меня PHP-скрипт , отображающий произвольный текст:

<?php

$quotes = array(
        'quote 1',
        'quote 2',
        'quote 3',
        'quote 4',
        'quote 5',
);

$i = array_rand($quotes);

header('Content-Type: text/plain; charset=utf-8');
print($quotes[$i]);

?>

Как я могу вызывать каждую минуту для отображения новой цитаты (русский текст в кодировке UTF8) на моей веб-странице (которая сама по себе является приложением iframe в Facebook)?

Нужно ли использовать jQuery здесь или есть более легкое решение, работающее в обычных браузерах?

У меня еще нет опыта работы с AJAX.

UPDATE

Как предложено Уку Лоськитом ниже, я добавил следующий фрагмент, и он хорошо работает. Кто-нибудь может показать мне, как добавить новую цитату с помощью fadeIn ()?

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
        setTimeout( function() {
                $.get("/hint.php", function(data) {
                        $("#hint").html(data);
                });
        }, 5*60*1000 );
});
</script>

Спасибо! Alex

Ответы [ 2 ]

4 голосов
/ 26 июня 2011

используйте метод setTimeout () .

Я бы сказал, что нет ничего сложного в использовании jQuery (особенно в минимизированной версии) "только для AJAX", потому что он обеспечивает перекрестный доступ.совместимое с браузером решение, и его гораздо проще программировать.

пример:

function getNewQuotes() {
   $.get("random_quotes.php", function(data) {
       // set the response from random_quotes.php to this div
       $("#quotesDiv").html(data);
   }); 
}

// 60000 milliseconds = 60 seconds = 1 minute
var t=setTimeout("getNewQuotes()", 60000);

Что касается вопроса о смешивании "не-JQuery и Javascript", для этого нет функции jQuery, которую я знаюиз всего, jQuery по-прежнему является Javascript и полагаться на специфичный для jQuery код все время не нужно, но будет полезно только для согласованности.

Редактировать:

$(function() {
            setTimeout( function() {
                    $.get("/hint.php", function(data) {
                            // first hide, then insert contents
                            $("#hint").hide();
                            $("#hint").html(data);
                            // you can probably chain this together into one command as well
                            $("#hint").fadeIn("slow");

                    });
            }, 5*60*1000 );
});
1 голос
/ 26 июня 2011

Вам не нужен jquery, но так проще. Просто возьмите с собой руководство Базовый пример того, как получить его один раз:

$.ajax({
  url: "yourFileName.php",
  context: document.body,
  success: function(result){
    $('#someDiv').html('result');
  }
});

затем добавьте код javascript, чтобы делать это периодически. Я уверен, что вы также можете найти что-нибудь изящное в jquery thingymabob:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...