带计时器的 jQuery/AJAX 调用

发布于 2024-11-26 16:01:39 字数 1296 浏览 2 评论 0原文

我如何使用 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()

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

时光与爱终年不遇 2024-12-03 16:01:39

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

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

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);
        }
    });
});
七禾 2024-12-03 16:01:39

您可以创建一个函数并设置一个 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>

我还没有检查代码,但您明白了。

You could create a function and set a javascript timer to call it every 5 seconds:

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

I haven't checked the code, but you get the idea.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文