且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

jQuery的/ AJAX调用一个计时器

更新时间:2023-11-17 16:26:49

从服务器的Ajax调用返回时,创建一个定时器,将再次轮询服务器 N 毫秒后来。这种方法应该工作,无论需要多长时间进行Ajax调用来完成。

  $(按钮)。点击(函数refreshText(){
    $阿贾克斯({
        网址:http://127.0.0.1:8080/
        成功:函数(结果){
            $(#文本)VAL(结果)。
            的setTimeout(refreshText,5000);
        }
    });
});
 

How can i implement the below code with jQuery/AJAX timer,(I have created 2 URL classes by using web.py.Here 1st URL will return a random number between 1 and 250.I have created an AJAX call in the 2nd URL,so that when you hit the button ,AJAX will call the values from the 1st URL and it will display inside the text box),Now i just want to modify the code like during every 5 seconds AJAX should call the numbers from 1st URL and it should display inside the text box.Is there any way to solve this problem by using jQuery/AJAX timer.

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()

When the ajax call returns from the server, create a timer that will poll the server again n milliseconds later. This approach should work regardless of how long it takes for the ajax call to complete.

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