| 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 | }}} |