Questo script, partorito dopo 2 giorni di prove, permette di controllare se un file è stato modificato negli ultimi 3 secondi (nell'esempio il file è tc.txt), e se ciò è vero allora aggiorna la pagina della chat...che ne pensate?? consigli, opinioni...

codice:
<body onload="ciclocookie()">
<script>

function getLastModified(file) {

    if (typeof XMLHttpRequest != "undefined") {
        xhr = new XMLHttpRequest();
    }
    else {
        try {
            xhr = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                xhr = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch (e) {
                xhr = null;
            }
        }
    }

    if (xhr != null) {

        xhr.open("HEAD", file, false);
        xhr.send(null);

        if ((xhr.status == 200) || ((xhr.status == 304))) {
            return xhr.getResponseHeader("Last-Modified");
        }
    }

    return -1;
}

function getCookieVal (offset)

   {

   var endstr = document.cookie.indexOf (";", offset);

   if (endstr == -1)

      endstr = document.cookie.length;

   return unescape(document.cookie.substring(offset, endstr));

   }

function GetCookie (name)

   {

   var arg = name + "=";
  var alen = arg.length;
  var clen = document.cookie.length;
  var i = 0;
  while (i < clen)
      {
      var j = i + alen;
      if (document.cookie.substring(i, j) == arg)
         return getCookieVal (j);
      i = document.cookie.indexOf(" ", i) + 1;
      if (i == 0)

         break;

      }

   return null;

   }

function SetCookie (name, value)

   {

   var argv = SetCookie.arguments;
   var argc = SetCookie.arguments.length;
   var expires = (2 < argc) ? argv[2] : null;
   var path = (3 < argc) ? argv[3] : null;
   var domain = (4 < argc) ? argv[4] : null;
   var secure = (5 < argc) ? argv[5] : false;
   document.cookie = name + "=" + escape (value) +
     ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
     ((path == null) ? "" : ("; path=" + path)) +
     ((domain == null) ? "" : ("; domain=" + domain)) +
        ((secure == true) ? "; secure" : "");
   }

var datelm = (new Date(getLastModified("tc.txt"))).getTime();
 var expdate = new Date();

expdate.setTime(expdate.getTime() + (24 * 60 * 60 * 1000 * 365));
 SetCookie("datecookie", datelm, expdate, "/", null, false);

 function ciclocookie()
   {
var datenow = (new Date(getLastModified("tc.txt"))).getTime();
if (datenow != GetCookie("datecookie"))
{
parent.frames["chat"].location.href = "chat.php";
var expdate = new Date();
expdate.setTime(expdate.getTime() + (24 * 60 * 60 * 1000 * 365));
SetCookie("datecookie", datenow, expdate, "/", null, false);
}
setTimeout('ciclocookie()', 3000);

 }



</script>
</body>