用计时器调用jQuery/AJAX

Sre*_*K M 5 javascript ajax jquery web.py

我如何用jQuery/AJAX计时器实现下面的代码,(我已经使用web.py创建了2个URL类.第一个URL将返回1到250之间的随机数.我在第二个URL中创建了一个AJAX调用,所以,当你点击按钮时,AJAX将调用第一个URL中的值,它将显示在文本框内),现在我只想修改代码,就像每隔5秒钟一样,AJAX应该调用第一个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()
Run Code Online (Sandbox Code Playgroud)

Chr*_*uts 5

当ajax调用从服务器返回时,创建一个计时器,该计时器将在n几毫秒后再次轮询服务器.无论ajax调用完成所需的时间长短,此方法都应该有效.

$("button").click(function refreshText(){
    $.ajax({
        url:"http://127.0.0.1:8080/",
        success:function(result){
            $("#text").val(result);
            setTimeout(refreshText, 5000);
        }
    });
});
Run Code Online (Sandbox Code Playgroud)