2011-07-27 29 views
5

jQuery/AJAX zamanlayıcı ile aşağıdaki kodu nasıl uygulayabilirim, (web.py.Here kullanarak 2 URL sınıfı oluşturdum.İlk URL 1 ve 250 arasında rastgele bir sayı döndürecektir. I 2. URL'de bir AJAX çağrısı oluşturdu, böylece düğmeye bastığınızda AJAX, 1. URL'deki değerleri arayacak ve metin kutusunun içinde görüntülenecektir), Şimdi kodu her 5 saniyede bir değiştirmek istiyorum AJAX 1 URL'den numaraları çağırmalı ve metin kutusunun içinde görüntülenmelidir. JQuery/AJAX zamanlayıcıyı kullanarak bu sorunu çözmek için herhangi bir yol var.jQuery/AJAX bir zamanlayıcı ile çağrı

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

cevap

5

ajax çağrısı sunucudan döndüğünde, sunucuyu tekrar n milisaniye sonra sorgulayacak bir zamanlayıcı oluşturun. Bu yaklaşım, ajax çağrısının tamamlanmasının ne kadar sürdüğüne bakılmaksızın çalışmalıdır.

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

Teşekkür ederim Chris .. – Sreehari

0

Sen bir işlev oluşturmak ve her 5 saniyede aramak bir javascript zamanlayıcı ayarlayabilirsiniz:

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

ben kod Kontrol etmedim ama fikir olsun.

+0

Öneriniz için teşekkür ederiz. – Sreehari

+0

ajax çağrısının tamamlanması 5 saniyeden uzun sürerse ne olur? –