JQuery / AJAX вызов с таймером - PullRequest
5 голосов
/ 27 июля 2011

Как я могу реализовать приведенный ниже код с таймером jQuery / AJAX, (я создал 2 класса URL с помощью web.py.За 1-й URL вернет случайное число от 1 до 250. Я создал вызов AJAX в2-й URL, так что когда вы нажимаете кнопку, AJAX будет вызывать значения из 1-го URL-адреса, и он будет отображаться внутри текстового поля), теперь я просто хочу изменить код, как в течение каждых 5 секунд AJAX должен вызывать номера с 1-гоURL и он должен отображаться внутри текстового поля. Есть ли способ решить эту проблему с помощью таймера jQuery / AJAX.

import web
import random

urls = (
  '/', 'main',
  '/random','fill')


app = web.application(urls, globals(), True)

class main:
    def GET(self):
       return  random.randint(1,250)


class fill:
    def GET(self):
        return'''
        <html>
        <head>
        <script type="text/javascript" src="http://ajax.microsoft.com/ajax/jquery/jquery-1.4.2.min.js"></script>
        <script type="text/javascript">
        $(document).ready(function(){
        $("button").click(function(){
          $.ajax({url:"http://127.0.0.1:8080/", success:function(result){
             $("#text").val(result);
          }});
        });});
        </script>
        </head>
        <body>


        <form>
        <input type = "text" id = "text"/>
        </form>
        <h2>Hit the button to view random numbers</h2>
        <button>Click</button>
        </body>
        </html>'''



if __name__ == "__main__":
    app.run()

Ответы [ 2 ]

5 голосов
/ 27 июля 2011

Когда вызов ajax возвращается с сервера, создайте таймер, который будет опрашивать сервер снова n миллисекунд спустя. Этот подход должен работать независимо от того, сколько времени потребуется для завершения вызова ajax.

$("button").click(function refreshText(){
    $.ajax({
        url:"http://127.0.0.1:8080/",
        success:function(result){
            $("#text").val(result);
            setTimeout(refreshText, 5000);
        }
    });
});
0 голосов
/ 27 июля 2011

Вы можете создать функцию и настроить таймер JavaScript для ее вызова каждые 5 секунд:

<script type="text/javascript">
displayNumbers() {
    $.ajax({url:"http://127.0.0.1:8080/", success:function(result){ $("#text").val(result); }});
}

$(document).ready(function() {
    setInterval('displayNumbers', 5000);
}
</script>

Я не проверял код, но вы поняли.

...