在服务器的间隔更新时在客户端JS上运行一个函数

时间:2017-05-09 19:49:48

标签: javascript php json ajax

所以我的问题是这个。

我有一个简单的ajax javascript,可以读取和解析一个简单的json文件。

<script type="text/javascript">

var idn=5;
var someval = "this is my var";
var url2 = "update.php";

function jsonparse(arr) {
    document.getElementById("mydiv").innerHTML = arr['t'];

} //end function

function get_json(url,id) {

    var xmlhttp = new XMLHttpRequest();

    xmlhttp.onreadystatechange = function() {

        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            var arr = JSON.parse(xmlhttp.responseText);
            jsonparse(arr);
        } //end if
    } //end function

    xmlhttp.open("POST", url2, true);
    xmlhttp.setRequestHeader("Content-type",  "application/x-www-form-  urlencoded");
    xmlhttp.send("a="+idn+"&b="+someval);
} //end function

function init() {
    setInterval(function () {
        get_json(url2,0);
    }, 1000 * 5); //update every 5 secs
} //end function

</script>

因为你可以看到我有一个每隔5秒更新一次的设置间隔,并触发jsonparse函数,当然这是一个过于简单的例子,但它说明了我的问题。

问题是我可以在PHP中发生一些事情,它会在每5秒触发客户端的get_json函数。

换句话说,不是让客户端发出请求,而是服务器将数据发送到客户端,当发生这种情况时,客户端会在这种情况下更新其div?

如果可能,我宁愿不必使用jquery。

1 个答案:

答案 0 :(得分:-3)

如果要从服务器向客户端发送内容,请尝试使用WebSockets。 Ratchet是php的实现。 http://socketo.me/

您可以使用棘轮编写php脚本并从命令行运行(建议使用主管)