145 | | }}} |
| 146 | |
| 147 | _pollHandler: function(request) |
| 148 | { |
| 149 | amq.startBatch(); |
| 150 | try |
| 151 | { |
| 152 | amq._messageHandler(request); |
| 153 | amq._pollEvent(amq._first); |
| 154 | amq._first=false; |
| 155 | } |
| 156 | catch(e) |
| 157 | { |
| 158 | alert(e); |
| 159 | } |
| 160 | amq.endBatch(); |
| 161 | |
| 162 | if (amq._pollDelay>0) |
| 163 | setTimeout('amq._sendPoll()',amq._pollDelay); |
| 164 | else |
| 165 | amq._sendPoll(); |
| 166 | }, |
| 167 | |
| 168 | startBatch: function() |
| 169 | { |
| 170 | amq._queueMessages++; |
| 171 | }, |
| 172 | |
| 173 | _messageHandler: function(request) |
| 174 | { |
| 175 | try |
| 176 | { |
| 177 | if (request.status == 200) |
| 178 | { |
| 179 | var response = request.responseXML.getElementsByTagName("ajax-response"); |
| 180 | if (response != null && response.length == 1) |
| 181 | { |
| 182 | for ( var i = 0 ; i < response[0].childNodes.length ; i++ ) |
| 183 | { |
| 184 | var responseElement = response[0].childNodes[i]; |
| 185 | |
| 186 | // only process nodes of type element..... |
| 187 | if ( responseElement.nodeType != 1 ) |
| 188 | continue; |
| 189 | |
| 190 | var id = responseElement.getAttribute('id'); |
| 191 | |
| 192 | |
| 193 | var handler = amq._handlers[id]; |
| 194 | if (handler!=null) |
| 195 | { |
| 196 | for (var j = 0; j < responseElement.childNodes.length; j++) |
| 197 | { |
| 198 | handler(responseElement.childNodes[j]); |
| 199 | } |
| 200 | } |
| 201 | } |
| 202 | } |
| 203 | } |
| 204 | } |
| 205 | catch(e) |
| 206 | { |
| 207 | alert(e); |
| 208 | } |
| 209 | }, |
| 210 | |
| 211 | endBatch: function() |
| 212 | { |
| 213 | amq._queueMessages--; |
| 214 | if (amq._queueMessages==0 && amq._messages>0) |
| 215 | { |
| 216 | var body = amq._messageQueue; |
| 217 | amq._messageQueue=''; |
| 218 | amq._messages=0; |
| 219 | amq._queueMessages++; |
| 220 | new Ajax.Request(amq.uri, { method: 'post', postBody: body, onSuccess: amq.endBatch}); |
| 221 | } |
| 222 | }, |
| 223 | }}} |