You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
71 lines
1.8 KiB
71 lines
1.8 KiB
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> |
|
<html> |
|
<head> |
|
|
|
<title>Dojo bind exception problem</title> |
|
|
|
<script type="text/javascript"> |
|
|
|
var djConfig = {isDebug: true}; |
|
|
|
</script> |
|
<script type="text/javascript" src="../../dojo.js"></script> |
|
<script type="text/javascript"> |
|
dojo.require("dojo.io.BrowserIO"); |
|
</script> |
|
|
|
<script type="text/javascript"> |
|
var testvar = 0; |
|
|
|
function firstBind() { |
|
dojo.io.bind({ |
|
url: 'frag.xml', |
|
method: 'get', |
|
load: firstBindReply, |
|
error: errorHandler |
|
}); |
|
} |
|
|
|
function firstBindReply(type, data, transport, bindArgs) { |
|
testvar++; |
|
dojo.debug("Error bind: testvar is now: " + testvar + ". About to throw an error now."); |
|
throw new Error('ohhhh, an error happened!'); |
|
} |
|
|
|
function secondBind() { |
|
dojo.io.bind({ |
|
url: 'frag.xml', |
|
method: 'get', |
|
load: secondBindReply, |
|
error: errorHandler |
|
}); |
|
} |
|
|
|
function secondBindReply(type, data, transport, bindArgs) { |
|
testvar++; |
|
dojo.debug("Safe bind: testvar is now: " + testvar); |
|
} |
|
|
|
function errorHandler(type, data, transport, bindArgs) { |
|
var error = data; |
|
if(data.message){ |
|
error = data.message; |
|
} |
|
dojo.debug("errorHandler called with error: " + error); |
|
} |
|
</script> |
|
|
|
</head> |
|
<body style="padding: 50px;"> |
|
<p> |
|
This test makes sure that throwing an exception in the load callback will not stop further |
|
dojo.io.bind() requests from proceeding. If <b>Error bind</b> is pressed, an exception |
|
will be thrown in the load handler. <b>Safe bind</b> does not throw an error. In all cases, |
|
the value of <b>testvar</b> should increase by 1 any time either button is pressed. |
|
</p> |
|
|
|
<input id="asdf" type="button" value="Error bind (throws error)" onclick="firstBind()"> |
|
<input type="button" value="Safe bind (does not throw error)" onclick="secondBind()"> |
|
|
|
</body> |
|
</html>
|
|
|