2011-07-27 18 views
5

के साथ jQuery/AJAX कॉल मैं jQuery/AJAX टाइमर के साथ नीचे दिए गए कोड को कैसे कार्यान्वित कर सकता हूं, (मैंने web.py का उपयोग करके 2 यूआरएल कक्षाएं बनाई हैं। यहां पहला यूआरएल 1 और 250 के बीच यादृच्छिक संख्या लौटाएगा। दूसरे यूआरएल में एक एजेक्स कॉल बनाया है, ताकि जब आप बटन दबाएंगे, AJAX पहले यूआरएल से मूल्यों को कॉल करेगा और यह टेक्स्ट बॉक्स के अंदर प्रदर्शित होगा), अब मैं सिर्फ 5 सेकंड के दौरान कोड को संशोधित करना चाहता हूं AJAX को पहले यूआरएल से नंबरों को कॉल करना चाहिए और इसे टेक्स्ट बॉक्स के अंदर प्रदर्शित करना चाहिए। क्या 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() 

उत्तर

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); 
     } 
    }); 
}); 
+0

धन्यवाद क्रिस .. – Sreehari

0

आप एक समारोह बना सकते हैं और यह हर 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> 

मैं कोड की जाँच नहीं की है, लेकिन आप विचार मिलता है।

+0

सुझाव के लिए धन्यवाद। – Sreehari

+0

क्या होगा अगर AJAX कॉल को पूरा होने में 5 सेकंड से अधिक समय लगे? –

संबंधित मुद्दे