Hi<div><br></div><div>   You might want to consider configuring your web server to return compressed xhtml files when the user is requesting it. This will allow faster download of large X3D scenes. You can see the HTML request and response headers when requesting an x3dom xhtml file from your server.</div><div><br></div><div><ol class="outline-disclosure" tabindex="0" style="box-sizing: border-box; font-size: 11px; list-style-type: none; -webkit-padding-start: 12px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-style: none; outline-width: initial; outline-color: initial; font-family: 'Lucida Grande', sans-serif; -webkit-text-size-adjust: none; "><li title="" style="box-sizing: border-box; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 14px; margin-top: 1px; margin-bottom: 1px; margin-left: -2px; word-wrap: break-word; "><div class="header-name" style="box-sizing: border-box; color: rgb(84, 84, 84); display: inline-block; margin-right: 0.5em; font-weight: bold; vertical-align: top; white-space: pre-wrap; ">Request URL:</div><div class="header-value source-code" style="box-sizing: border-box; font-family: Consolas, 'Lucida Console', monospace; font-size: 12px !important; white-space: pre-wrap; display: inline; margin-right: 100px; word-break: break-all; margin-top: 1px; ">http://x3dgraphics.com/examples/X3dForWebAuthors/Chapter02-GeometryPrimitives/GeometryPrimitiveNodes.xhtml</div></li><li title="" style="box-sizing: border-box; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 14px; margin-top: 1px; margin-bottom: 1px; margin-left: -2px; word-wrap: break-word; "><div class="header-name" style="box-sizing: border-box; color: rgb(84, 84, 84); display: inline-block; margin-right: 0.5em; font-weight: bold; vertical-align: top; white-space: pre-wrap; ">Request Method:</div><div class="header-value source-code" style="box-sizing: border-box; font-family: Consolas, 'Lucida Console', monospace; font-size: 12px !important; white-space: pre-wrap; display: inline; margin-right: 100px; word-break: break-all; margin-top: 1px; ">GET</div></li><li title="" style="box-sizing: border-box; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 14px; margin-top: 1px; margin-bottom: 1px; margin-left: -2px; word-wrap: break-word; "><div class="header-name" style="box-sizing: border-box; color: rgb(84, 84, 84); display: inline-block; margin-right: 0.5em; font-weight: bold; vertical-align: top; white-space: pre-wrap; ">Status Code:</div><img class="resource-status-image" src="chrome-devtools://devtools/Images/successGreenDot.png" title="200 OK" style="box-sizing: border-box; -webkit-user-drag: none; margin-top: -3px; vertical-align: middle; "><div class="header-value source-code" style="box-sizing: border-box; font-family: Consolas, 'Lucida Console', monospace; font-size: 12px !important; white-space: pre-wrap; display: inline; margin-right: 100px; word-break: break-all; margin-top: 1px; ">200 OK</div></li><li title="" class="parent expanded" style="box-sizing: border-box; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 14px; margin-top: 1px; margin-bottom: 1px; margin-left: -12px; word-wrap: break-word; -webkit-user-select: none; font-weight: bold; ">Request Headers<span class="header-toggle" style="box-sizing: border-box; display: inline; margin-left: 30px; font-weight: normal; color: rgb(115, 115, 115); ">view source</span></li><ol class="children expanded" style="box-sizing: border-box; position: relative; padding-top: 2px !important; padding-right: 6px !important; padding-bottom: 2px !important; padding-left: 6px !important; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; cursor: default; min-width: 100%; list-style-type: none; -webkit-padding-start: 12px; "><li title="" style="box-sizing: border-box; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 14px; margin-top: 1px; margin-bottom: 1px; margin-left: -2px; word-wrap: break-word; white-space: nowrap; "><div class="header-name" style="box-sizing: border-box; color: rgb(84, 84, 84); display: inline-block; margin-right: 0.5em; font-weight: bold; vertical-align: top; white-space: pre-wrap; ">Accept:</div><div class="header-value source-code" style="box-sizing: border-box; font-family: Consolas, 'Lucida Console', monospace; font-size: 12px !important; white-space: pre-wrap; display: inline; margin-right: 100px; word-break: break-all; margin-top: 1px; ">text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8</div></li><li title="" style="box-sizing: border-box; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 14px; margin-top: 1px; margin-bottom: 1px; margin-left: -2px; word-wrap: break-word; white-space: nowrap; "><div class="header-name" style="box-sizing: border-box; color: rgb(84, 84, 84); display: inline-block; margin-right: 0.5em; font-weight: bold; vertical-align: top; white-space: pre-wrap; ">Accept-Charset:</div><div class="header-value source-code" style="box-sizing: border-box; font-family: Consolas, 'Lucida Console', monospace; font-size: 12px !important; white-space: pre-wrap; display: inline; margin-right: 100px; word-break: break-all; margin-top: 1px; ">ISO-8859-1,utf-8;q=0.7,*;q=0.3</div></li><li title="" style="box-sizing: border-box; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 14px; margin-top: 1px; margin-bottom: 1px; margin-left: -2px; word-wrap: break-word; white-space: nowrap; "><div class="header-name" style="box-sizing: border-box; color: rgb(84, 84, 84); display: inline-block; margin-right: 0.5em; font-weight: bold; vertical-align: top; white-space: pre-wrap; ">Accept-Encoding:</div><div class="header-value source-code" style="box-sizing: border-box; font-family: Consolas, 'Lucida Console', monospace; font-size: 12px !important; white-space: pre-wrap; display: inline; margin-right: 100px; word-break: break-all; margin-top: 1px; ">gzip,deflate,sdch</div></li><li title="" style="box-sizing: border-box; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 14px; margin-top: 1px; margin-bottom: 1px; margin-left: -2px; word-wrap: break-word; white-space: nowrap; "><div class="header-name" style="box-sizing: border-box; color: rgb(84, 84, 84); display: inline-block; margin-right: 0.5em; font-weight: bold; vertical-align: top; white-space: pre-wrap; ">Accept-Language:</div><div class="header-value source-code" style="box-sizing: border-box; font-family: Consolas, 'Lucida Console', monospace; font-size: 12px !important; white-space: pre-wrap; display: inline; margin-right: 100px; word-break: break-all; margin-top: 1px; ">en-US,en;q=0.8</div></li><li title="" style="box-sizing: border-box; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 14px; margin-top: 1px; margin-bottom: 1px; margin-left: -2px; word-wrap: break-word; white-space: nowrap; "><div class="header-name" style="box-sizing: border-box; color: rgb(84, 84, 84); display: inline-block; margin-right: 0.5em; font-weight: bold; vertical-align: top; white-space: pre-wrap; ">Cache-Control:</div><div class="header-value source-code" style="box-sizing: border-box; font-family: Consolas, 'Lucida Console', monospace; font-size: 12px !important; white-space: pre-wrap; display: inline; margin-right: 100px; word-break: break-all; margin-top: 1px; ">max-age=0</div></li><li title="" style="box-sizing: border-box; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 14px; margin-top: 1px; margin-bottom: 1px; margin-left: -2px; word-wrap: break-word; white-space: nowrap; "><div class="header-name" style="box-sizing: border-box; color: rgb(84, 84, 84); display: inline-block; margin-right: 0.5em; font-weight: bold; vertical-align: top; white-space: pre-wrap; ">Connection:</div><div class="header-value source-code" style="box-sizing: border-box; font-family: Consolas, 'Lucida Console', monospace; font-size: 12px !important; white-space: pre-wrap; display: inline; margin-right: 100px; word-break: break-all; margin-top: 1px; ">keep-alive</div></li><li title="" style="box-sizing: border-box; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 14px; margin-top: 1px; margin-bottom: 1px; margin-left: -2px; word-wrap: break-word; white-space: nowrap; "><div class="header-name" style="box-sizing: border-box; color: rgb(84, 84, 84); display: inline-block; margin-right: 0.5em; font-weight: bold; vertical-align: top; white-space: pre-wrap; ">Host:</div><div class="header-value source-code" style="box-sizing: border-box; font-family: Consolas, 'Lucida Console', monospace; font-size: 12px !important; white-space: pre-wrap; display: inline; margin-right: 100px; word-break: break-all; margin-top: 1px; ">x3dgraphics.com</div></li><li title="" style="box-sizing: border-box; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 14px; margin-top: 1px; margin-bottom: 1px; margin-left: -2px; word-wrap: break-word; white-space: nowrap; "><div class="header-name" style="box-sizing: border-box; color: rgb(84, 84, 84); display: inline-block; margin-right: 0.5em; font-weight: bold; vertical-align: top; white-space: pre-wrap; ">User-Agent:</div><div class="header-value source-code" style="box-sizing: border-box; font-family: Consolas, 'Lucida Console', monospace; font-size: 12px !important; white-space: pre-wrap; display: inline; margin-right: 100px; word-break: break-all; margin-top: 1px; ">Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.137 Safari/535.19</div></li></ol><li title="" class="parent expanded" style="box-sizing: border-box; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 14px; margin-top: 1px; margin-bottom: 1px; margin-left: -12px; word-wrap: break-word; -webkit-user-select: none; font-weight: bold; ">Response Headers<span class="header-toggle" style="box-sizing: border-box; display: inline; margin-left: 30px; font-weight: normal; color: rgb(115, 115, 115); ">view source</span></li><ol class="children expanded" style="box-sizing: border-box; position: relative; padding-top: 2px !important; padding-right: 6px !important; padding-bottom: 2px !important; padding-left: 6px !important; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; cursor: default; min-width: 100%; list-style-type: none; -webkit-padding-start: 12px; "><li title="" style="box-sizing: border-box; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 14px; margin-top: 1px; margin-bottom: 1px; margin-left: -2px; word-wrap: break-word; white-space: nowrap; "><div class="header-name" style="box-sizing: border-box; color: rgb(84, 84, 84); display: inline-block; margin-right: 0.5em; font-weight: bold; vertical-align: top; white-space: pre-wrap; ">Accept-Ranges:</div><div class="header-value source-code" style="box-sizing: border-box; font-family: Consolas, 'Lucida Console', monospace; font-size: 12px !important; white-space: pre-wrap; display: inline; margin-right: 100px; word-break: break-all; margin-top: 1px; ">bytes</div></li><li title="" style="box-sizing: border-box; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 14px; margin-top: 1px; margin-bottom: 1px; margin-left: -2px; word-wrap: break-word; white-space: nowrap; "><div class="header-name" style="box-sizing: border-box; color: rgb(84, 84, 84); display: inline-block; margin-right: 0.5em; font-weight: bold; vertical-align: top; white-space: pre-wrap; ">Connection:</div><div class="header-value source-code" style="box-sizing: border-box; font-family: Consolas, 'Lucida Console', monospace; font-size: 12px !important; white-space: pre-wrap; display: inline; margin-right: 100px; word-break: break-all; margin-top: 1px; ">Keep-Alive</div></li><li title="" style="box-sizing: border-box; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 14px; margin-top: 1px; margin-bottom: 1px; margin-left: -2px; word-wrap: break-word; white-space: nowrap; "><div class="header-name" style="box-sizing: border-box; color: rgb(84, 84, 84); display: inline-block; margin-right: 0.5em; font-weight: bold; vertical-align: top; white-space: pre-wrap; ">Content-Length:</div><div class="header-value source-code" style="box-sizing: border-box; font-family: Consolas, 'Lucida Console', monospace; font-size: 12px !important; white-space: pre-wrap; display: inline; margin-right: 100px; word-break: break-all; margin-top: 1px; ">7764</div></li><li title="" style="box-sizing: border-box; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 14px; margin-top: 1px; margin-bottom: 1px; margin-left: -2px; word-wrap: break-word; white-space: nowrap; "><div class="header-name" style="box-sizing: border-box; color: rgb(84, 84, 84); display: inline-block; margin-right: 0.5em; font-weight: bold; vertical-align: top; white-space: pre-wrap; ">Content-Type:</div><div class="header-value source-code" style="box-sizing: border-box; font-family: Consolas, 'Lucida Console', monospace; font-size: 12px !important; white-space: pre-wrap; display: inline; margin-right: 100px; word-break: break-all; margin-top: 1px; ">application/xhtml+xml</div></li><li title="" style="box-sizing: border-box; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 14px; margin-top: 1px; margin-bottom: 1px; margin-left: -2px; word-wrap: break-word; white-space: nowrap; "><div class="header-name" style="box-sizing: border-box; color: rgb(84, 84, 84); display: inline-block; margin-right: 0.5em; font-weight: bold; vertical-align: top; white-space: pre-wrap; ">Date:</div><div class="header-value source-code" style="box-sizing: border-box; font-family: Consolas, 'Lucida Console', monospace; font-size: 12px !important; white-space: pre-wrap; display: inline; margin-right: 100px; word-break: break-all; margin-top: 1px; ">Mon, 26 Mar 2012 16:09:21 GMT</div></li><li title="" style="box-sizing: border-box; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 14px; margin-top: 1px; margin-bottom: 1px; margin-left: -2px; word-wrap: break-word; white-space: nowrap; "><div class="header-name" style="box-sizing: border-box; color: rgb(84, 84, 84); display: inline-block; margin-right: 0.5em; font-weight: bold; vertical-align: top; white-space: pre-wrap; ">ETag:</div><div class="header-value source-code" style="box-sizing: border-box; font-family: Consolas, 'Lucida Console', monospace; font-size: 12px !important; white-space: pre-wrap; display: inline; margin-right: 100px; word-break: break-all; margin-top: 1px; ">"668c72-1e54-4bc1ffdafaf40"</div></li><li title="" style="box-sizing: border-box; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 14px; margin-top: 1px; margin-bottom: 1px; margin-left: -2px; word-wrap: break-word; white-space: nowrap; "><div class="header-name" style="box-sizing: border-box; color: rgb(84, 84, 84); display: inline-block; margin-right: 0.5em; font-weight: bold; vertical-align: top; white-space: pre-wrap; ">Keep-Alive:</div><div class="header-value source-code" style="box-sizing: border-box; font-family: Consolas, 'Lucida Console', monospace; font-size: 12px !important; white-space: pre-wrap; display: inline; margin-right: 100px; word-break: break-all; margin-top: 1px; ">timeout=5, max=100</div></li><li title="" style="box-sizing: border-box; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 14px; margin-top: 1px; margin-bottom: 1px; margin-left: -2px; word-wrap: break-word; white-space: nowrap; "><div class="header-name" style="box-sizing: border-box; color: rgb(84, 84, 84); display: inline-block; margin-right: 0.5em; font-weight: bold; vertical-align: top; white-space: pre-wrap; ">Last-Modified:</div><div class="header-value source-code" style="box-sizing: border-box; font-family: Consolas, 'Lucida Console', monospace; font-size: 12px !important; white-space: pre-wrap; display: inline; margin-right: 100px; word-break: break-all; margin-top: 1px; ">Mon, 26 Mar 2012 07:04:53 GMT</div></li><li title="" style="box-sizing: border-box; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 14px; margin-top: 1px; margin-bottom: 1px; margin-left: -2px; word-wrap: break-word; white-space: nowrap; "><div class="header-name" style="box-sizing: border-box; color: rgb(84, 84, 84); display: inline-block; margin-right: 0.5em; font-weight: bold; vertical-align: top; white-space: pre-wrap; ">Server:</div><div class="header-value source-code" style="box-sizing: border-box; font-family: Consolas, 'Lucida Console', monospace; font-size: 12px !important; white-space: pre-wrap; display: inline; margin-right: 100px; word-break: break-all; margin-top: 1px; ">Apache</div></li></ol></ol><div><br></div>From the request header you can see that the users computer is requesting compressed data.</div><div><br></div><div><div class="header-name" style="font-family: 'Lucida Grande', sans-serif; font-size: 10px; -webkit-text-size-adjust: none; box-sizing: border-box; color: rgb(84, 84, 84); display: inline-block; margin-right: 0.5em; font-weight: bold; vertical-align: top; white-space: pre-wrap; ">Accept-Encoding:</div><div class="header-value source-code" style="font-size: 12px !important; -webkit-text-size-adjust: none; box-sizing: border-box; font-family: Consolas, 'Lucida Console', monospace; white-space: pre-wrap; display: inline; margin-right: 100px; word-break: break-all; margin-top: 1px; ">gzip,deflate,sdch</div></div><div><br></div><div>in the form of gzip, deflate, or sdch. But your server is not sending back a compressed response. Here is some information on configuring a server for compression.</div><div><br></div><div><a href="http://betterexplained.com/articles/how-to-optimize-your-site-with-gzip-compression/">http://betterexplained.com/articles/how-to-optimize-your-site-with-gzip-compression/</a>
</div><div><br></div><div>You can configure your server to compress by file type such as html, xhtml, x3d, wrl etc.</div><div><br></div><div>Another thing you might want to consider is setting up Cors to allow access of x3d content from external servers. This is from the X3DOM website.</div><div><br></div><div><a href="http://x3dom.org/docs/dev/notes/cors.html">http://x3dom.org/docs/dev/notes/cors.html</a>
</div><div><br></div><div>X3DOM is restricted by the same origin policy. It can only display content that resides on the same domain as the xhtml file from which it was served. It cannot load an <inline url='www.otherserver.com/file.x3d'> file coming from a different domain unless that other server has configured CORS to allow it. The x3dom server sends back the following in their response header to allow their x3d content and x3d images to be retrieved by other domains.</div><div><br></div><div><div class="header-name" style="box-sizing: border-box; color: rgb(84, 84, 84); display: inline-block; margin-right: 0.5em; font-weight: bold; vertical-align: top; white-space: pre-wrap; font-family: 'Lucida Grande', sans-serif; font-size: 11px; -webkit-text-size-adjust: none; ">Access-Control-Allow-Origin:</div><div class="header-value source-code" style="box-sizing: border-box; font-family: Consolas, 'Lucida Console', monospace; font-size: 12px !important; white-space: pre-wrap; display: inline; margin-right: 100px; word-break: break-all; margin-top: 1px; -webkit-text-size-adjust: none; ">*</div>
</div><div><br></div><div>John</div><div><br></div><div>----- Original Message -----<br>From: Don Brutzman <brutzman@nps.edu><br>Date: Monday, March 26, 2012 4:50 am<br>Subject: [X3D-Public] Available:  X3dToX3dom.xslt converter for X3DOM<br>To: Johannes Behr <johannes.behr@igd.fraunhofer.de>, Yvonne Jung <yvonne.jung@igd.fraunhofer.de><br>Cc: X3D Graphics public mailing list <x3d-public@web3d.org><br><br>> I've written a stylesheet to convert .x3d scenes to X3DOM xhtml <br>> encoding.Available at<br>> http://www.web3d.org/x3d/stylesheets/X3dToX3dom.xslt<br>> <br>> Initial conversions are available for inspection in the<br>> X3D for Web Authors examples archive for each scene.<br>> Original files in the XML encoding with .x3d extension<br>> are converted to X3DOM (HTML + X3D) with .xhtml extension.<br>> <br>> http://x3dgraphics.com/examples/X3dForWebAuthors/<br>>     then pick a chapter<br>>       then pick a scene<br>>         see upper right corner for link for x3dom .xhtml<br>> <br>> Example:<br>> http://x3dgraphics.com/examples/X3dForWebAuthors/Chapter02-<br>> GeometryPrimitives/GeometryPrimitiveNodes.x3dhttp://x3dgraphics.com/examples/X3dForWebAuthors/Chapter02-GeometryPrimitives/GeometryPrimitiveNodes.xhtml<br>> <br>> I also experimented with (and included) the nice Zoom/Unzoom <br>> functionalityprovided by the well-documented X3DOM tutorial <br>> "Styling with CSS" at<br>> http://x3dom.org/docs/dev/tutorial/styling.html<br>> <br>> Thanks again to the Fraunhofer team for the stellar X3DOM work.<br>> Comments and improvements on this converter are welcome.<br>> <br>> all the best, Don<br>> -- <br>> Don Brutzman  Naval Postgraduate School, Code <br>> USW/Br       brutzman@nps.edu<br>> Watkins 270,  MOVES Institute, Monterey CA 93943-5000 <br>> USA   +1.831.656.2149<br>> X3D graphics, virtual worlds, navy robotics <br>> http://faculty.nps.edu/brutzman<br>> _______________________________________________<br>> X3D-Public mailing list<br>> X3D-Public@web3d.org<br>> http://web3d.org/mailman/listinfo/x3d-public_web3d.org<br>> </div>