--- googlecode.com/svn/trunk/public_html/poll.html 2007/10/10 22:25:57 31 +++ googlecode.com/svn/trunk/public_html/poll.html 2007/12/20 21:24:24 32 @@ -7,61 +7,40 @@ var topdomain = domainparts[domainparts.length-2]+"."+domainparts[domainparts.length-1]; document.domain = topdomain; var lastrequesttime = 0; -var pollreq = false; +var pollreq = null; var polltimer = false; var i=0; var isaborted = 0; parent.Meteor.register(this); -Function.prototype.bind = function(obj) { - var method = this, - temp = function() { - return method.apply(obj, arguments); - }; - return temp; -} - function newXmlHttp() { - var xmlhttp; - /*@cc_on @*/ - /*@if (@_jscript_version >= 5) - try { - xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); - } catch (e) { - try { - xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); - } catch (E) { - xmlhttp = false; - } - } - @end @*/ - if (!xmlhttp && typeof XMLHttpRequest!='undefined') { - xmlhttp = new XMLHttpRequest(); - } - return xmlhttp; + try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) {} + try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} + try { return new XMLHttpRequest(); } catch(e) {} + return null; } function poll() { isaborted = 0; + pollreq = null; try { clearTimeout(polltimer); } catch (e) {} var byteoffset = 0; var newdata; document.domain = topdomain; - var url = get("subsurl"); + var url = parent.Meteor.getSubsUrl(); if (typeof(url)!="undefined") { - var now = new Date(); - var t = now.getTime(); - url += "&template=2&nocache="+t; try { document.domain = thisdomain; } catch (e) {} pollreq = newXmlHttp(); pollreq.onreadystatechange = handleresponse; pollreq.open("GET", url, true); + var now = new Date(); + var t = now.getTime(); lastrequesttime = t; - if (get("polltimeout")) polltimer = setTimeout(ptimeout, get("polltimeout")); + if (parent.Meteor.polltimeout) polltimer = setTimeout(ptimeout, parent.Meteor.polltimeout); pollreq.send(null); } document.domain=topdomain; @@ -75,11 +54,6 @@ if (typeof(topdomain) == "undefined") return false; document.domain=topdomain; newdata = pollreq.responseText; - var x = newdata.indexOf("parent.Meteor.setServerTime("); - if (x != -1) { - y = newdata.indexOf(");", x); - if (y != -1) eval(newdata.substring(x,y+2)); - } while (1) { var x = newdata.indexOf("p("); if (x != -1) { @@ -96,8 +70,9 @@ } var now = new Date(); var t = now.getTime(); - var x = get("pollfreq") - (t-lastrequesttime); + var x = parent.Meteor.pollfreq - (t-lastrequesttime); if (x < 10) x = 10; + pollreq = null; setTimeout(poll, x); } } @@ -105,20 +80,20 @@ function ptimeout() { isaborted = 1; pollreq.abort(); - delete pollreq; + pollreq = null; clearTimeout(polltimer); var now = new Date(); var t = now.getTime(); - var x = get("pollfreq") - (t-lastrequesttime); + var x = parent.Meteor.pollfreq - (t-lastrequesttime); if (x < 10) x = 10; setTimeout(poll, x); } function guard() { - var url = get("subsurl"); + var url = parent.Meteor.getSubsUrl(); if (typeof(url)=="undefined") { pollreq.abort(); - delete pollreq; + pollreq = null; clearTimeout(polltimer); } setTimeout('guard()', 1000);