UNPKG

dojox

Version:

Dojo eXtensions, a rollup of many useful sub-projects and varying states of maturity – from very stable and robust, to alpha and experimental. See individual projects contain README files for details.

72 lines (65 loc) 2.25 kB
<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" > <head> <title>Testing surface.destroy()</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <style type="text/css"> @import "../../../dojo/resources/dojo.css"; @import "../../../dijit/tests/css/dijitTests.css"; </style> <script type="text/javascript" src="../../../dojo/dojo.js" data-dojo-config="isDebug: true"></script> <!--<script type="text/javascript" src="../_base.js"></script>--> <!--<script type="text/javascript" src="../shape.js"></script>--> <!--<script type="text/javascript" src="../path.js"></script>--> <!--<script type="text/javascript" src="../vml.js"></script>--> <!--<script type="text/javascript" src="../svg.js"></script>--> <!--<script type="text/javascript" src="../silverlight.js"></script>--> <script type="text/javascript"> dojo.require("dojox.gfx"); dojo.require("dojox.gfx.registry"); surface = null; createSurface = function(){ surface = dojox.gfx.createSurface("test", 500, 500); surface.whenLoaded(makeShapes); }; makeShapes = function(){ var path = surface.createPath(""); // form concentric circles var center = {x: 250, y: 250}; for(var r = 200; r > 0; r -= 30){ // make two 180 degree arcs to form a circle var start = {x: center.x, y: center.y - r}; var end = {x: center.x, y: center.y + r}; path.moveTo(start).arcTo(r, r, 0, true, true, end).arcTo(r, r, 0, true, true, start).closePath(); } // set visual attributes path.setFill("red").setStroke("black"); }; cleanUp = function(){ if(surface){ var id = surface.children[0].getUID(); surface.destroy(); surface = null; var t = dojo.byId("test").innerHTML; if(t){ console.error("Garbage detected: " + t); return; } if (dojox.gfx.shape.byId(id)){ console.log("Shape not disposed."); return; } console.log("The parent node was cleaned up properly."); } createSurface(); } dojo.addOnLoad(createSurface); </script> </head> <body> <h1>Testing surface.destroy()</h1> <p><button onclick="cleanUp();">Regenerate</button></p> <p><em>See the firebug log for detailed reports.</em></p> <div id="test" style="width: 500px; height: 500px;"></div> <p>That's all Folks!</p> </body> </html>