12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
- "http://www.w3.org/TR/html4/strict.dtd">
- <html>
- <head>
- <title>Testing dojo.io.script</title>
- <style type="text/css">
- @import "../../resources/dojo.css";
- </style>
- <script type="text/javascript"
- src="../../dojo.js" djConfig="isDebug: true"></script>
- <script type="text/javascript">
- dojo.require("dojo.io.script");
- function startTest(){
- var td = dojo.io.script.get({
- url: "../_base/timeout.php",
- callbackParamName: "callback",
- content: {Foo: 'Bar'},
- timeout: 500,
- handleAs: "json",
- preventCache: true,
- handle: function(response, ioArgs){
- if(response instanceof Error && response.dojoType == "timeout"){
- console.debug("TEST OK. No errors should be seen after this timeout error.");
- }else{
- console.debug("TEST FAILED: some other error or response received: ", response);
- }
- }
- });
- }
- </script>
- </head>
- <body>
- <h1>Timeout test</h1>
-
- <p>
- This test page tests the timeout functionality of dojo.io.script, and to make
- sure that requests that time out get removed quickly. If the server response
- is received after the script has been timed out, there should not be weird
- errors as the browser tries to evaluate the responses after the desired time
- period.
- </p>
-
- <p>This test requires a server running PHP to work.</p>
-
- <p>
- <p><strong>Firefox Oddity:</strong> Firefox
- will print an error after the script response is received from the server:<br />
- <span style="color: red">dojo.io.script.jsonp_dojoIoScript1 has no properties</span>
- This is bad because Firefox goes ahead and evaluates the script contents in the page's
- JavaScript space (this happens even when I turn off Firefox Add-Ons). All other browsers
- do not evaluate the script (given the weird Opera 9.22 behavior below). You can test this
- by clicking the <b>Test for SuperXFooBarVariable</b> button after receiving the response
- for timeout.php (check Firebug Net tab to see when request is received). All other browsers
- show an error or show the "undefined" value for SuperXFooBarVariable, but Firefox will show its
- value as being: "Oh no! SuperXFooBarVariable is defined (should not be for timeout case)".
-
- <p><strong>Opera Oddity:</strong> Opera 9.22 does not seem to trigger the timeout case,
- but rather it waits for the server to send a response to the script before continuing past the
- point where the script is added to the DOM? That seems wrong. Dynamic script tags are no longer
- an async operation?
- </p>
-
- <button onclick="startTest()">Start Test</button>
- <button onclick="alert(SuperXFooBarVariable)">Test for SuperXFooBarVariable</button>
- </body>
- </html>
|