This example illustrates Connection Manager's built-in transaction timeout functionality.
Click the "Create Two Transactions" button below. Two requests will be made to a PHP script that is designed to respond slowly, waiting between 0 and 10 seconds to respond. If the response takes longer than 1.5 seconds, the request will automatically abort (resulting in a "transaction aborted" message).
The following code example provides a step-by-step approach to presetting a transaction timeout.
Load the Yahoo Global Object and Connection Manager source files:
1 | <script src="yahoo.js"></script> |
2 | <script src="event.js"></script> |
3 | <script src="connection.js"></script> |
view plain | print | ? |
The callback object includes a timeout
property that allows you to specify the amount of time you're willing to wait for a transaction to complete before aborting. To cause a transaction to automatically timeout, the timeout
property must be defined wih a value in millseconds. This example defines timeout with a value of 5000(milliseconds). If the transaction is not complete within 5000ms, it will be aborted.
1 | var handleSuccess = function(o){ |
2 | if(o.responseText !== undefined){ |
3 | div.innerHTML = "Transaction id: " + o.tId; |
4 | div.innerHTML += "HTTP status: " + o.status; |
5 | div.innerHTML += "Server response: " + o.responseText; |
6 | div.innerHTML += "Argument object: property foo = " + o.argument.foo + |
7 | "and property bar = " + o.argument.bar; |
8 | } |
9 | } |
10 | |
11 | var handleFailure = function(o){ |
12 | div.innerHTML += "<li>Transaction id: " + o.tId + "</li>"; |
13 | div.innerHTML += "<li>HTTP status: " + o.status + "</li>"; |
14 | div.innerHTML += "<li>Status code message: " + o.statusText + "</li>"; |
15 | } |
16 | |
17 | var callback = |
18 | { |
19 | success:handleSuccess, |
20 | failure: handleFailure, |
21 | argument: { foo:"foo", bar:"bar" }, |
22 | timeout: 1500 |
23 | }; |
view plain | print | ? |
Call YAHOO.util.Connect.asyncRequest
to send the request to sync.php
. The PHP script will return a string message after a random delay of 0 to 10 seconds if the transaction was not aborted. If the transaction was successfully aborted, the response object's status property will report -1
and the statusText
property will report "transaction aborted".
1 | var sUrl = "php/sync.php"; |
2 | var request = YAHOO.util.Connect.asyncRequest('GET', sUrl, callback); |
view plain | print | ? |
Note: Logging and debugging is currently turned off for this example.
Copyright © 2008 Yahoo! Inc. All rights reserved.
Privacy Policy - Terms of Service - Copyright Policy - Job Openings