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>


Rispondi quotando