如何按时间间隔调用并获取JSON值?

时间:2014-04-21 11:27:21

标签: jquery ajax

我有一个页面,它包含一个json string.Form另一个页面我需要使用ajax调用并每隔3秒读取该值并显示在page.I能够实现除间隔调用页面之外的所有内容。可以看到ajax调用正在工作但新值没有收到我的页面。这是我的代码。

<? $url = 'http://mydomain.com/test';?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
<script src="http://code.jquery.com/jquery-1.7.2.min.js" type="text/javascript"></script>

</head>  
<body>
<script>
$(document).ready(function() {

    myjsonval();   
});

function myjsonval(){

    var jsonp = '[<? echo file_get_contents($url);?>]';
    var lang = '';
    var obj = $.parseJSON(jsonp);
    $.each(obj, function() {
        lang += this['precentage'] + "<br/>";
    });
    $('span').html(lang);
     console.log('test called');
    setTimeout(myjsonval, 3000);

}
        </script>
<span></span>
</body>
</html>

当我使用F5刷新页面时,显示新值。但是我需要通过AJAX调用自动获取值。有什么想法吗?

由于

1 个答案:

答案 0 :(得分:-2)

请尝试以下代码:

 $(document).ready(function() {

    myjsonval();   
    setInterval(myjsonval, 3000);
 });

同样删除修改你的函数myjsonval,如:

  function myjsonval(){

var jsonp = '[<? echo file_get_contents($url);?>]';
var lang = '';
var obj = $.parseJSON(jsonp);
$.each(obj, function() {
    lang += this['precentage'] + "<br/>";
});
$('span').html(lang);
 console.log('test called');

}