如何使用jQuery / AJAX计时器实现以下代码,(我已经使用web.py创建了2个URL类。第1个URL将返回1到250之间的随机数。我已经创建了一个AJAX调用第二个URL,这样当你点击按钮时,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()
答案 0 :(得分: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);
}
});
});
答案 1 :(得分:0)
您可以创建一个函数并设置一个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>
我没有检查过代码,但是你明白了。