javascript每5秒轮询一次php脚本

时间:2014-07-04 15:13:20

标签: javascript php

如何使用javascript检查php脚本中的值以进行更改?

我想做点什么:

<script type="text/javascript"><!--
var innitialID = get_file_contents(lastPresentID.php); //get_file_contents(lastPresentID.php);

function myTimeout() {
    var freshestID = get_file_contents(lastPresentID.php);
    if(freshestID != innitialID) {
            location.reload();
        }
  setTimeout(myTimeout, 5000);
}
window.onload = myTimeout;
</script>

php脚本生成一个整数,这是表的最后一个ID。

谢谢!

2 个答案:

答案 0 :(得分:0)

<script type="text/javascript">
    window.onload = doAjax(true);
    setInterval(doAjax, 5000);

    var initialID = -1, freshestID;

    function doAjax(initial) {
      var xmlhttp;
      if (window.XMLHttpRequest) {
        xmlhttp = new XMLHttpRequest(); // code for IE7+, Firefox, Chrome, Opera, Safari
      } else {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); // code for IE6, IE5
      }

      xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200){
           if(initial) {
               initialID = xmlhttp.responseText;
           } else {
               freshestID = xmlhttp.responseText;
               if (initialID != freshestID)
                   location.reload();
           }                   
        }
      }

      xmlhttp.open("GET", "lastPresentID.php", true);
      xmlhttp.send();
    }
</script>

我们去,在那里用ajax调用更新。首先设置initialId变量,然后间隔代码每5秒运行一次并更新freshestId变量,然后进行比较。

编辑:代码现在没有重复。

答案 1 :(得分:0)

以下加载代码将指定oldVal。然后使用setInterval每5秒更新一次newVal并检查是否newVal != oldVal

它使用AJAXlastPresentID.php获取值。

var oldVal = 0;
var newVal = 0;

function loadXMLDoc(old) {
    var xmlhttp;

    if (window.XMLHttpRequest) {
        // code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp = new XMLHttpRequest();
    } else {
        // code for IE6, IE5
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }

    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4 ) {
           if(xmlhttp.status == 200){
               if(old)
               {
                   oldVal = xmlhttp.responseText;
               }
               else
               {
                   newVal = xmlhttp.responseText;

                   if(newVal != oldVal)
                       alert("test");
               }                   
           }
           else if(xmlhttp.status == 400) {
              alert('There was an error 400')
           }
           else {
               alert(xmlhttp.status)
           }
        }
    }

    xmlhttp.open("GET", "lastPresentID.php", true);
    xmlhttp.send();
}

function timeout() {
    loadXMLDoc(false);
}

loadXMLDoc(true);
setInterval(timeout, 5000);