/[meteor]/googlecode.com/svn/trunk/public_html/poll.html
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /googlecode.com/svn/trunk/public_html/poll.html

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 23 by andrew.betts, Sun May 20 14:03:10 2007 UTC revision 62 by andrew.betts, Thu Nov 27 00:33:21 2008 UTC
# Line 1  Line 1 
 <html>  
 <body>  
 <script type="text/javascript">  
 window.onError = null;  
 var domainparts = document.domain.split(".");  
 var thisdomain = document.domain;  
 var topdomain = domainparts[domainparts.length-2]+"."+domainparts[domainparts.length-1];  
 document.domain = topdomain;  
 var lastrequesttime = 0;  
 var pollreq = false;  
 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;  
 }  
   
 function poll() {  
         isaborted = 0;  
         try {  
                 clearTimeout(polltimer);  
         } catch (e) {}  
         var byteoffset = 0;  
         var newdata;  
         document.domain = topdomain;  
         var url = get("subsurl");  
         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);  
                 lastrequesttime = t;  
                 if (get("polltimeout")) polltimer = setTimeout(ptimeout, get("polltimeout"));  
                 pollreq.send(null);  
         }  
         document.domain=topdomain;  
 }  
   
 function handleresponse() {  
         if (typeof(pollreq) == "object" && pollreq.readyState == 4 && !isaborted) {  
                 try {  
                         clearTimeout(polltimer);  
                 } catch (e) {}  
                 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("<s"+"cript>p(");  
                         if (x != -1) {  
                                 y = newdata.indexOf("</"+"script>", x);  
                                 if (y != -1) {  
                                         eval(newdata.substring((x+8),y));  
                                         newdata = newdata.substring(y+9);  
                                 } else {  
                                         break;  
                                 }  
                         } else {  
                                 break;  
                         }  
                 }  
                 var now = new Date();  
                 var t = now.getTime();  
                 var x = get("pollfreq") - (t-lastrequesttime);  
                 if (x < 10) x = 10;  
                 setTimeout(poll, x);  
         }  
 }  
   
 function ptimeout() {  
         isaborted = 1;  
         pollreq.abort();  
         delete pollreq;  
         clearTimeout(polltimer);  
         var now = new Date();  
         var t = now.getTime();  
         var x = get("pollfreq") - (t-lastrequesttime);  
         if (x < 10) x = 10;  
         setTimeout(poll, x);  
 }  
   
 poll();  
   
 </script>  
 </body>  
 </html>  
1    <html>
2    <body>
3    <script type="text/javascript">
4    window.onError = null;
5    var domainparts = document.domain.split(".");
6    var thisdomain = document.domain;
7    var topdomain = domainparts[domainparts.length-2]+"."+domainparts[domainparts.length-1];
8    document.domain = topdomain;
9    var lastrequesttime = 0;
10    var pollreq = null;
11    var polltimer = false;
12    var i=0;
13    var isaborted = 0;
14    parent.Meteor.register(this);
15    
16    function newXmlHttp() {
17            var xhr = null;
18        try { xhr = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) {
19                    try { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {
20                            try { xhr = new XMLHttpRequest(); } catch(e) { return false }
21                    }
22            }
23            return xhr;
24    }
25    
26    function setHeaders(xhr) {
27    
28            function safeSet(k, v) {
29                    try {
30                            xhr.setRequestHeader(k, v);
31                    } catch(e) {}
32            }
33    
34            safeSet("User-Agent", null);
35            safeSet("Accept", null);
36            safeSet("Accept-Language", null);
37            safeSet("Content-Type", "M");
38            safeSet("Connection", "keep-alive");
39            safeSet("Keep-Alive", null);
40    }
41    
42    function poll() {
43            isaborted = 0;
44            pollreq = null;
45            try {
46                    clearTimeout(polltimer);
47            } catch (e) {}
48            var byteoffset = 0;
49            var newdata;
50            try {
51                    var url = parent.Meteor.getSubsUrl();
52            } catch(e) {
53                    return false;
54            }
55            if (typeof(url)!="undefined") {
56                    pollreq = newXmlHttp();
57                    pollreq.onreadystatechange = handleresponse;
58                    pollreq.open("GET", url, true);
59                    var now = new Date();
60                    var t = now.getTime();
61                    lastrequesttime = t;
62                    if (parent.Meteor.polltimeout) polltimer = setTimeout(ptimeout, parent.Meteor.polltimeout);
63                    setHeaders(pollreq);
64                    pollreq.send(null);
65            }
66    }
67    
68    function handleresponse() {
69            if (typeof(pollreq) == "object" && pollreq.readyState == 4 && !isaborted) {
70                    try {
71                            clearTimeout(polltimer);
72                    } catch (e) {}
73                    try {
74                            var y = parent.Meteor.getSubsUrl();
75                    } catch (e) { return false };
76                    newdata = pollreq.responseText;
77                    while (1) {
78                            var x = newdata.indexOf("<s"+"cript>");
79                            if (x != -1) {
80                                    y = newdata.indexOf("</"+"script>", x);
81                                    if (y != -1) {
82                                            eval(newdata.substring((x+8),y));
83                                            newdata = newdata.substring(y+9);
84                                    } else {
85                                            break;
86                                    }
87                            } else {
88                                    break;
89                            }
90                    }
91                    if (parent.Meteor.status) {
92                            var now = new Date();
93                            var t = now.getTime();
94                            var x = parent.Meteor.pollfreq - (t-lastrequesttime);
95                            if (x < 10) x = 10;
96                            pollreq = null;
97                            setTimeout(poll, x);
98                    }
99            }
100    }
101    
102    function ptimeout() {
103            isaborted = 1;
104            pollreq.abort();
105            pollreq = null;
106            clearTimeout(polltimer);
107            var now = new Date();
108            var t = now.getTime();
109            var x = parent.Meteor.pollfreq - (t-lastrequesttime);
110            if (x < 10) x = 10;
111            setTimeout(poll, x);
112    }
113    
114    poll();
115    
116    
117    </script>
118    </body>
119    </html>

Legend:
Removed from v.23  
changed lines
  Added in v.62

  ViewVC Help
Powered by ViewVC 1.1.26