﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-咖啡伴侣-随笔分类-Web</title><link>http://www.blogjava.net/oathleo/category/30444.html</link><description>呆在上海</description><language>zh-cn</language><lastBuildDate>Wed, 15 Aug 2012 19:55:14 GMT</lastBuildDate><pubDate>Wed, 15 Aug 2012 19:55:14 GMT</pubDate><ttl>60</ttl><item><title>IE下 eval 内存泄漏</title><link>http://www.blogjava.net/oathleo/archive/2012/08/15/385544.html</link><dc:creator>oathleo</dc:creator><author>oathleo</author><pubDate>Wed, 15 Aug 2012 08:53:00 GMT</pubDate><guid>http://www.blogjava.net/oathleo/archive/2012/08/15/385544.html</guid><wfw:comment>http://www.blogjava.net/oathleo/comments/385544.html</wfw:comment><comments>http://www.blogjava.net/oathleo/archive/2012/08/15/385544.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/oathleo/comments/commentRss/385544.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/oathleo/services/trackbacks/385544.html</trackback:ping><description><![CDATA[下面2段代码是测试代码，IE9下测试<br />
都有泄漏，非IE浏览器没问题。困惑<br />
<br />
<br />
<span style="color: red; ">每秒eval，400个方法调用；200多K的内存泄漏，</span><br /><br />
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all; "><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000FF; ">&lt;!</span><span style="color: #FF00FF; ">DOCTYPE&nbsp;html&nbsp;PUBLIC&nbsp;"-//W3C//DTD&nbsp;HTML&nbsp;4.01&nbsp;Transitional//EN"&nbsp;"http://www.w3.org/TR/html4/loose.dtd"</span><span style="color: #0000FF; ">&gt;</span><br />
<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">html</span><span style="color: #0000FF; ">&gt;</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">head</span><span style="color: #0000FF; ">&gt;</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">meta&nbsp;</span><span style="color: #FF0000; ">http-equiv</span><span style="color: #0000FF; ">="Content-Type"</span><span style="color: #FF0000; ">&nbsp;content</span><span style="color: #0000FF; ">="text/html;&nbsp;charset=UTF-8"</span><span style="color: #0000FF; ">&gt;</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">title</span><span style="color: #0000FF; ">&gt;</span>eval&nbsp;测试<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">title</span><span style="color: #0000FF; ">&gt;</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">script</span><span style="color: #0000FF; ">&gt;</span><span style="background-color: #f5f5f5; "><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="background-color: #F5F5F5; color: #0000FF; ">var</span><span style="background-color: #f5f5f5; ">&nbsp;afunction&nbsp;</span><span style="background-color: #f5f5f5; ">=</span><span style="background-color: #f5f5f5; ">&nbsp;</span><span style="background-color: #F5F5F5; color: #0000FF; ">function</span><span style="background-color: #f5f5f5; ">(_name,_mask){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="background-color: #F5F5F5; color: #0000FF; ">return</span><span style="background-color: #f5f5f5; ">&nbsp;</span><span style="background-color: #F5F5F5; color: #0000FF; ">false</span><span style="background-color: #f5f5f5; ">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="background-color: #F5F5F5; color: #0000FF; ">var</span><span style="background-color: #f5f5f5; ">&nbsp;bfunction&nbsp;</span><span style="background-color: #f5f5f5; ">=</span><span style="background-color: #f5f5f5; ">&nbsp;</span><span style="background-color: #F5F5F5; color: #0000FF; ">function</span><span style="background-color: #f5f5f5; ">(_color){<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="background-color: #F5F5F5; color: #0000FF; ">var</span><span style="background-color: #f5f5f5; ">&nbsp;cfunction&nbsp;</span><span style="background-color: #f5f5f5; ">=</span><span style="background-color: #f5f5f5; ">&nbsp;</span><span style="background-color: #F5F5F5; color: #0000FF; ">function</span><span style="background-color: #f5f5f5; ">(_color){<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
</span><span style="background-color: #F5F5F5; color: #0000FF; ">var</span><span style="background-color: #f5f5f5; ">&nbsp;_action&nbsp;</span><span style="background-color: #f5f5f5; ">=</span><span style="background-color: #f5f5f5; ">&nbsp;</span><span style="background-color: #F5F5F5; color: #0000FF; ">function</span><span style="background-color: #f5f5f5; ">(){<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="background-color: #F5F5F5; color: #0000FF; ">for</span><span style="background-color: #f5f5f5; ">(</span><span style="background-color: #F5F5F5; color: #0000FF; ">var</span><span style="background-color: #f5f5f5; ">&nbsp;i</span><span style="background-color: #f5f5f5; ">=</span><span style="background-color: #f5f5f5; ">0</span><span style="background-color: #f5f5f5; ">;i</span><span style="background-color: #f5f5f5; ">&lt;</span><span style="background-color: #f5f5f5; ">40</span><span style="background-color: #f5f5f5; ">;i</span><span style="background-color: #f5f5f5; ">++</span><span style="background-color: #f5f5f5; ">){<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="background-color: #F5F5F5; color: #0000FF; ">var</span><span style="background-color: #f5f5f5; ">&nbsp;_script&nbsp;</span><span style="background-color: #f5f5f5; ">=</span><span style="background-color: #f5f5f5; ">&nbsp;</span><span style="background-color: #f5f5f5; ">"</span><span style="background-color: #f5f5f5; ">if(afunction('111','222'))&nbsp;bfunction('0xCDCD00');&nbsp;else&nbsp;if(afunction('111','222'))&nbsp;bfunction('0xCDCD00');&nbsp;else&nbsp;if(afunction('111','222'))&nbsp;bfunction('0xCDCD00');&nbsp;else&nbsp;if(afunction('111','222'))&nbsp;bfunction('0xCDCD00');&nbsp;else&nbsp;if(afunction('111','222'))&nbsp;bfunction('0xCDCD00');</span><span style="background-color: #f5f5f5; ">"</span><span style="background-color: #f5f5f5; ">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_script&nbsp;</span><span style="background-color: #f5f5f5; ">+=</span><span style="background-color: #f5f5f5; ">&nbsp;</span><span style="background-color: #f5f5f5; ">"</span><span style="background-color: #f5f5f5; ">if(afunction('222','333'))&nbsp;cfunction('0xCDCD00');&nbsp;else&nbsp;if(afunction('222','333'))&nbsp;cfunction('0xCDCD00');&nbsp;&nbsp;else&nbsp;if(afunction('222','333'))&nbsp;cfunction('0xCDCD00');&nbsp;else&nbsp;if(afunction('222','333'))&nbsp;cfunction('0xCDCD00');&nbsp;else&nbsp;if(afunction('222','333'))&nbsp;cfunction('0xCDCD00');</span><span style="background-color: #f5f5f5; ">"</span><span style="background-color: #f5f5f5; ">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="background-color: #F5F5F5; color: #0000FF; ">var</span><span style="background-color: #f5f5f5; ">&nbsp;_func&nbsp;</span><span style="background-color: #f5f5f5; ">=</span><span style="background-color: #f5f5f5; ">&nbsp;</span><span style="background-color: #F5F5F5; color: #0000FF; ">new</span><span style="background-color: #f5f5f5; ">&nbsp;Function(_script);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_func();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;<br />
}<br />
<br />
window.onload&nbsp;</span><span style="background-color: #f5f5f5; ">=</span><span style="background-color: #f5f5f5; ">&nbsp;</span><span style="background-color: #F5F5F5; color: #0000FF; ">function</span><span style="background-color: #f5f5f5; ">()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;setInterval(_action,</span><span style="background-color: #f5f5f5; ">1000</span><span style="background-color: #f5f5f5; ">);<br />
};<br />
<br />
</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">script</span><span style="color: #0000FF; ">&gt;</span><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">head</span><span style="color: #0000FF; ">&gt;</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">body</span><span style="color: #0000FF; ">&gt;</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">body</span><span style="color: #0000FF; ">&gt;</span><br />
<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">html</span><span style="color: #0000ff; ">&gt;</span></div>
2.<br />
<br />
<br />
<br />
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all; "><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000FF; ">&lt;!</span><span style="color: #FF00FF; ">DOCTYPE&nbsp;html&nbsp;PUBLIC&nbsp;"-//W3C//DTD&nbsp;HTML&nbsp;4.01&nbsp;Transitional//EN"&nbsp;"http://www.w3.org/TR/html4/loose.dtd"</span><span style="color: #0000FF; ">&gt;</span><br />
<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">html</span><span style="color: #0000FF; ">&gt;</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">head</span><span style="color: #0000FF; ">&gt;</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">meta&nbsp;</span><span style="color: #FF0000; ">http-equiv</span><span style="color: #0000FF; ">="Content-Type"</span><span style="color: #FF0000; ">&nbsp;content</span><span style="color: #0000FF; ">="text/html;&nbsp;charset=UTF-8"</span><span style="color: #0000FF; ">&gt;</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">title</span><span style="color: #0000FF; ">&gt;</span>eval&nbsp;测试<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">title</span><span style="color: #0000FF; ">&gt;</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">script</span><span style="color: #0000FF; ">&gt;</span><span style="background-color: #f5f5f5; "><br />
<br />
</span><span style="background-color: #F5F5F5; color: #0000FF; ">var</span><span style="background-color: #f5f5f5; ">&nbsp;_action&nbsp;</span><span style="background-color: #f5f5f5; ">=</span><span style="background-color: #f5f5f5; ">&nbsp;</span><span style="background-color: #F5F5F5; color: #0000FF; ">function</span><span style="background-color: #f5f5f5; ">(){<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="background-color: #F5F5F5; color: #0000FF; ">var</span><span style="background-color: #f5f5f5; ">&nbsp;afunction&nbsp;</span><span style="background-color: #f5f5f5; ">=</span><span style="background-color: #f5f5f5; ">&nbsp;</span><span style="background-color: #F5F5F5; color: #0000FF; ">function</span><span style="background-color: #f5f5f5; ">(_name,_mask){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="background-color: #F5F5F5; color: #0000FF; ">return</span><span style="background-color: #f5f5f5; ">&nbsp;</span><span style="background-color: #F5F5F5; color: #0000FF; ">false</span><span style="background-color: #f5f5f5; ">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="background-color: #F5F5F5; color: #0000FF; ">var</span><span style="background-color: #f5f5f5; ">&nbsp;bfunction&nbsp;</span><span style="background-color: #f5f5f5; ">=</span><span style="background-color: #f5f5f5; ">&nbsp;</span><span style="background-color: #F5F5F5; color: #0000FF; ">function</span><span style="background-color: #f5f5f5; ">(_color){<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="background-color: #F5F5F5; color: #0000FF; ">var</span><span style="background-color: #f5f5f5; ">&nbsp;cfunction&nbsp;</span><span style="background-color: #f5f5f5; ">=</span><span style="background-color: #f5f5f5; ">&nbsp;</span><span style="background-color: #F5F5F5; color: #0000FF; ">function</span><span style="background-color: #f5f5f5; ">(_color){<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="background-color: #F5F5F5; color: #0000FF; ">for</span><span style="background-color: #f5f5f5; ">(</span><span style="background-color: #F5F5F5; color: #0000FF; ">var</span><span style="background-color: #f5f5f5; ">&nbsp;i</span><span style="background-color: #f5f5f5; ">=</span><span style="background-color: #f5f5f5; ">0</span><span style="background-color: #f5f5f5; ">;i</span><span style="background-color: #f5f5f5; ">&lt;</span><span style="background-color: #f5f5f5; ">40</span><span style="background-color: #f5f5f5; ">;i</span><span style="background-color: #f5f5f5; ">++</span><span style="background-color: #f5f5f5; ">){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="background-color: #F5F5F5; color: #0000FF; ">var</span><span style="background-color: #f5f5f5; ">&nbsp;_script&nbsp;</span><span style="background-color: #f5f5f5; ">=</span><span style="background-color: #f5f5f5; ">&nbsp;</span><span style="background-color: #f5f5f5; ">"</span><span style="background-color: #f5f5f5; ">if(afunction('111','222'))&nbsp;bfunction('0xCDCD00');&nbsp;else&nbsp;if(afunction('111','222'))&nbsp;bfunction('0xCDCD00');&nbsp;else&nbsp;if(afunction('111','222'))&nbsp;bfunction('0xCDCD00');&nbsp;else&nbsp;if(afunction('111','222'))&nbsp;bfunction('0xCDCD00');&nbsp;else&nbsp;if(afunction('111','222'))&nbsp;bfunction('0xCDCD00');</span><span style="background-color: #f5f5f5; ">"</span><span style="background-color: #f5f5f5; ">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_script&nbsp;</span><span style="background-color: #f5f5f5; ">+=</span><span style="background-color: #f5f5f5; ">&nbsp;</span><span style="background-color: #f5f5f5; ">"</span><span style="background-color: #f5f5f5; ">if(afunction('222','333'))&nbsp;cfunction('0xCDCD00');&nbsp;else&nbsp;if(afunction('222','333'))&nbsp;cfunction('0xCDCD00');&nbsp;&nbsp;else&nbsp;if(afunction('222','333'))&nbsp;cfunction('0xCDCD00');&nbsp;else&nbsp;if(afunction('222','333'))&nbsp;cfunction('0xCDCD00');&nbsp;else&nbsp;if(afunction('222','333'))&nbsp;cfunction('0xCDCD00');</span><span style="background-color: #f5f5f5; ">"</span><span style="background-color: #f5f5f5; ">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;eval(_script);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;<br />
}<br />
<br />
window.onload&nbsp;</span><span style="background-color: #f5f5f5; ">=</span><span style="background-color: #f5f5f5; ">&nbsp;</span><span style="background-color: #F5F5F5; color: #0000FF; ">function</span><span style="background-color: #f5f5f5; ">()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;setInterval(_action,</span><span style="background-color: #f5f5f5; ">1000</span><span style="background-color: #f5f5f5; ">);<br />
};<br />
<br />
</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">script</span><span style="color: #0000FF; ">&gt;</span><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">head</span><span style="color: #0000FF; ">&gt;</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">body</span><span style="color: #0000FF; ">&gt;</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">body</span><span style="color: #0000FF; ">&gt;</span><br />
<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">html</span><span style="color: #0000ff; ">&gt;</span></div><img src ="http://www.blogjava.net/oathleo/aggbug/385544.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/oathleo/" target="_blank">oathleo</a> 2012-08-15 16:53 <a href="http://www.blogjava.net/oathleo/archive/2012/08/15/385544.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>html5 canvas 在不同浏览器下效率</title><link>http://www.blogjava.net/oathleo/archive/2012/08/03/html5_canvas_performance.html</link><dc:creator>oathleo</dc:creator><author>oathleo</author><pubDate>Fri, 03 Aug 2012 00:56:00 GMT</pubDate><guid>http://www.blogjava.net/oathleo/archive/2012/08/03/html5_canvas_performance.html</guid><wfw:comment>http://www.blogjava.net/oathleo/comments/384660.html</wfw:comment><comments>http://www.blogjava.net/oathleo/archive/2012/08/03/html5_canvas_performance.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/oathleo/comments/commentRss/384660.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/oathleo/services/trackbacks/384660.html</trackback:ping><description><![CDATA[<div>1.目前使用全刷策略，即每秒全刷整张图(xml格式)，复杂图形通讯量在30K左右（gzip压缩），桌面浏览器：FF、Google&nbsp;Chrome 运行CPU占用3%左右</div>
<div>2.移动设备测试效果同1</div>
<div>3.桌面IE8下使用excanvas插件，可以打开看但效率很低，无法实现秒级刷新（IE9下效果未知）</div>
<div>&nbsp;</div>
<div>使用canvas已可开发出非IE浏览器实时图形，适合桌面和移动系统</div>
<div>桌面IE8及以下，仍然没有高效的图形展示方案</div>
<div>如客户端局部刷新，应该能提高通讯、展示效率，但大大提升开发难度，但如想IE8下实现秒级刷新，估计只能依靠优秀的局部刷新技术来实现<br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/oathleo/1221.jpg" border="0" alt="" width="809" height="547" /><br />
<br />
2<br /><img src="http://www.blogjava.net/images/blogjava_net/oathleo/1222.jpg" border="0" alt="" width="1000" height="1333" /><br />
</div><img src ="http://www.blogjava.net/oathleo/aggbug/384660.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/oathleo/" target="_blank">oathleo</a> 2012-08-03 08:56 <a href="http://www.blogjava.net/oathleo/archive/2012/08/03/html5_canvas_performance.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>canvas draw椭圆</title><link>http://www.blogjava.net/oathleo/archive/2012/07/31/384410.html</link><dc:creator>oathleo</dc:creator><author>oathleo</author><pubDate>Tue, 31 Jul 2012 02:21:00 GMT</pubDate><guid>http://www.blogjava.net/oathleo/archive/2012/07/31/384410.html</guid><wfw:comment>http://www.blogjava.net/oathleo/comments/384410.html</wfw:comment><comments>http://www.blogjava.net/oathleo/archive/2012/07/31/384410.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/oathleo/comments/commentRss/384410.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/oathleo/services/trackbacks/384410.html</trackback:ping><description><![CDATA[<div><span style="white-space:pre">1.canvas draw椭圆 通过</span>
scale&nbsp;<br />2.arc 前必须beginPath&nbsp;<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->&nbsp; &nbsp; &nbsp; &nbsp; canvas_context.save();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;canvas_context.scale(1,&nbsp;_scale);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;canvas_context.beginPath();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;canvas_context.arc(_centerX,&nbsp;_centerY,&nbsp;parseInt(_bounds[2]&nbsp;*&nbsp;0.5),&nbsp;0,(Math.PI/180)*360,&nbsp;<span style="color: #0000ff; ">true</span>);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;canvas_context.restore();</div></div><img src ="http://www.blogjava.net/oathleo/aggbug/384410.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/oathleo/" target="_blank">oathleo</a> 2012-07-31 10:21 <a href="http://www.blogjava.net/oathleo/archive/2012/07/31/384410.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>浏览器里的图形展示</title><link>http://www.blogjava.net/oathleo/archive/2010/06/21/SVG_Canvas_VML_FLEX_SL.html</link><dc:creator>oathleo</dc:creator><author>oathleo</author><pubDate>Mon, 21 Jun 2010 13:36:00 GMT</pubDate><guid>http://www.blogjava.net/oathleo/archive/2010/06/21/SVG_Canvas_VML_FLEX_SL.html</guid><wfw:comment>http://www.blogjava.net/oathleo/comments/324093.html</wfw:comment><comments>http://www.blogjava.net/oathleo/archive/2010/06/21/SVG_Canvas_VML_FLEX_SL.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/oathleo/comments/commentRss/324093.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/oathleo/services/trackbacks/324093.html</trackback:ping><description><![CDATA[<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="ProgId" content="Word.Document" />
<meta name="Generator" content="Microsoft Word 12" />
<meta name="Originator" content="Microsoft Word 12" />
<link rel="File-List" href="file:///h:%5Cwindows7%5Ctemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml" />
<link rel="themeData" href="file:///h:%5Cwindows7%5Ctemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx" />
<link rel="colorSchemeMapping" href="file:///h:%5Cwindows7%5Ctemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml" /><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:DrawingGridVerticalSpacing>7.8 磅</w:DrawingGridVerticalSpacing>
<w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery>
<w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>ZH-CN</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:SpaceForUL/>
<w:BalanceSingleByteDoubleByteWidth/>
<w:DoNotLeaveBackslashAlone/>
<w:ULTrailSpace/>
<w:DoNotExpandShiftReturn/>
<w:AdjustLineHeightInTable/>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:DontVertAlignCellWithSp/>
<w:DontBreakConstrainedForcedTables/>
<w:DontVertAlignInTxbx/>
<w:Word11KerningPairs/>
<w:CachedColBalance/>
<w:UseFELayout/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math" />
<m:brkBin m:val="before" />
<m:brkBinSub m:val="&#45;-" />
<m:smallFrac m:val="off" />
<m:dispDef/>
<m:lMargin m:val="0" />
<m:rMargin m:val="0" />
<m:defJc m:val="centerGroup" />
<m:wrapIndent m:val="1440" />
<m:intLim m:val="subSup" />
<m:naryLim m:val="undOvr" />
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles deflockedstate="false" defunhidewhenused="true" defsemihidden="true" defqformat="false" defpriority="99" latentstylecount="267">
<w:LsdException locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Normal" />
<w:LsdException locked="false" priority="9" semihidden="false" unhidewhenused="false" qformat="true" name="heading 1" />
<w:LsdException locked="false" priority="9" qformat="true" name="heading 2" />
<w:LsdException locked="false" priority="9" qformat="true" name="heading 3" />
<w:LsdException locked="false" priority="9" qformat="true" name="heading 4" />
<w:LsdException locked="false" priority="9" qformat="true" name="heading 5" />
<w:LsdException locked="false" priority="9" qformat="true" name="heading 6" />
<w:LsdException locked="false" priority="9" qformat="true" name="heading 7" />
<w:LsdException locked="false" priority="9" qformat="true" name="heading 8" />
<w:LsdException locked="false" priority="9" qformat="true" name="heading 9" />
<w:LsdException locked="false" priority="39" name="toc 1" />
<w:LsdException locked="false" priority="39" name="toc 2" />
<w:LsdException locked="false" priority="39" name="toc 3" />
<w:LsdException locked="false" priority="39" name="toc 4" />
<w:LsdException locked="false" priority="39" name="toc 5" />
<w:LsdException locked="false" priority="39" name="toc 6" />
<w:LsdException locked="false" priority="39" name="toc 7" />
<w:LsdException locked="false" priority="39" name="toc 8" />
<w:LsdException locked="false" priority="39" name="toc 9" />
<w:LsdException locked="false" priority="35" qformat="true" name="caption" />
<w:LsdException locked="false" priority="10" semihidden="false" unhidewhenused="false" qformat="true" name="Title" />
<w:LsdException locked="false" priority="1" name="Default Paragraph Font" />
<w:LsdException locked="false" priority="11" semihidden="false" unhidewhenused="false" qformat="true" name="Subtitle" />
<w:LsdException locked="false" priority="22" semihidden="false" unhidewhenused="false" qformat="true" name="Strong" />
<w:LsdException locked="false" priority="20" semihidden="false" unhidewhenused="false" qformat="true" name="Emphasis" />
<w:LsdException locked="false" priority="59" semihidden="false" unhidewhenused="false" name="Table Grid" />
<w:LsdException locked="false" unhidewhenused="false" name="Placeholder Text" />
<w:LsdException locked="false" priority="1" semihidden="false" unhidewhenused="false" qformat="true" name="No Spacing" />
<w:LsdException locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading" />
<w:LsdException locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List" />
<w:LsdException locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid" />
<w:LsdException locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1" />
<w:LsdException locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2" />
<w:LsdException locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1" />
<w:LsdException locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2" />
<w:LsdException locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1" />
<w:LsdException locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2" />
<w:LsdException locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3" />
<w:LsdException locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List" />
<w:LsdException locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading" />
<w:LsdException locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List" />
<w:LsdException locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid" />
<w:LsdException locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 1" />
<w:LsdException locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 1" />
<w:LsdException locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 1" />
<w:LsdException locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 1" />
<w:LsdException locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 1" />
<w:LsdException locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 1" />
<w:LsdException locked="false" unhidewhenused="false" name="Revision" />
<w:LsdException locked="false" priority="34" semihidden="false" unhidewhenused="false" qformat="true" name="List Paragraph" />
<w:LsdException locked="false" priority="29" semihidden="false" unhidewhenused="false" qformat="true" name="Quote" />
<w:LsdException locked="false" priority="30" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Quote" />
<w:LsdException locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 1" />
<w:LsdException locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 1" />
<w:LsdException locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 1" />
<w:LsdException locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 1" />
<w:LsdException locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 1" />
<w:LsdException locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 1" />
<w:LsdException locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 1" />
<w:LsdException locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 1" />
<w:LsdException locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 2" />
<w:LsdException locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 2" />
<w:LsdException locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 2" />
<w:LsdException locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 2" />
<w:LsdException locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 2" />
<w:LsdException locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 2" />
<w:LsdException locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 2" />
<w:LsdException locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 2" />
<w:LsdException locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 2" />
<w:LsdException locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 2" />
<w:LsdException locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 2" />
<w:LsdException locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 2" />
<w:LsdException locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 2" />
<w:LsdException locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 2" />
<w:LsdException locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 3" />
<w:LsdException locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 3" />
<w:LsdException locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 3" />
<w:LsdException locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 3" />
<w:LsdException locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 3" />
<w:LsdException locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 3" />
<w:LsdException locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 3" />
<w:LsdException locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 3" />
<w:LsdException locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 3" />
<w:LsdException locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 3" />
<w:LsdException locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 3" />
<w:LsdException locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 3" />
<w:LsdException locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 3" />
<w:LsdException locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 3" />
<w:LsdException locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 4" />
<w:LsdException locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 4" />
<w:LsdException locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 4" />
<w:LsdException locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 4" />
<w:LsdException locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 4" />
<w:LsdException locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 4" />
<w:LsdException locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 4" />
<w:LsdException locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 4" />
<w:LsdException locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 4" />
<w:LsdException locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 4" />
<w:LsdException locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 4" />
<w:LsdException locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 4" />
<w:LsdException locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 4" />
<w:LsdException locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 4" />
<w:LsdException locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 5" />
<w:LsdException locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 5" />
<w:LsdException locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 5" />
<w:LsdException locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 5" />
<w:LsdException locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 5" />
<w:LsdException locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 5" />
<w:LsdException locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 5" />
<w:LsdException locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 5" />
<w:LsdException locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 5" />
<w:LsdException locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 5" />
<w:LsdException locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 5" />
<w:LsdException locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 5" />
<w:LsdException locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 5" />
<w:LsdException locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 5" />
<w:LsdException locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 6" />
<w:LsdException locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 6" />
<w:LsdException locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 6" />
<w:LsdException locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 6" />
<w:LsdException locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 6" />
<w:LsdException locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 6" />
<w:LsdException locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 6" />
<w:LsdException locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 6" />
<w:LsdException locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 6" />
<w:LsdException locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 6" />
<w:LsdException locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 6" />
<w:LsdException locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 6" />
<w:LsdException locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 6" />
<w:LsdException locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 6" />
<w:LsdException locked="false" priority="19" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Emphasis" />
<w:LsdException locked="false" priority="21" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Emphasis" />
<w:LsdException locked="false" priority="31" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Reference" />
<w:LsdException locked="false" priority="32" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Reference" />
<w:LsdException locked="false" priority="33" semihidden="false" unhidewhenused="false" qformat="true" name="Book Title" />
<w:LsdException locked="false" priority="37" name="Bibliography" />
<w:LsdException locked="false" priority="39" qformat="true" name="TOC Heading" />
</w:LatentStyles>
</xml><![endif]--><style>
<!-- /* Font Definitions */
@font-face
{font-family:宋体;
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-alt:SimSun;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 680460288 22 0 262145 0;}
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;
mso-font-charset:1;
mso-generic-font-family:roman;
mso-font-format:other;
mso-font-pitch:variable;
mso-font-signature:0 0 0 0 0 0;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;
mso-font-charset:0;
mso-generic-font-family:swiss;
mso-font-pitch:variable;
mso-font-signature:-520092929 1073786111 9 0 415 0;}
@font-face
{font-family:"\@宋体";
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 680460288 22 0 262145 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-unhide:no;
mso-style-qformat:yes;
mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
font-size:10.5pt;
mso-bidi-font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:宋体;
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;
mso-font-kerning:1.0pt;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
{mso-style-priority:34;
mso-style-unhide:no;
mso-style-qformat:yes;
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:21.0pt;
mso-char-indent-count:2.0;
mso-pagination:none;
font-size:10.5pt;
mso-bidi-font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:宋体;
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;
mso-font-kerning:1.0pt;}
.MsoChpDefault
{mso-style-type:export-only;
mso-default-props:yes;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
/* Page Definitions */
@page
{mso-page-border-surround-header:no;
mso-page-border-surround-footer:no;}
@page Section1
{size:612.0pt 792.0pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;
mso-header-margin:36.0pt;
mso-footer-margin:36.0pt;
mso-paper-source:0;}
div.Section1
{page:Section1;}
/* List Definitions */
@list l0
{mso-list-id:388303784;
mso-list-type:hybrid;
mso-list-template-ids:-499714670 -1106635300 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
{mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:39.0pt;
text-indent:-18.0pt;}
@list l1
{mso-list-id:1659647142;
mso-list-type:hybrid;
mso-list-template-ids:831653198 603078380 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l1:level1
{mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:39.0pt;
text-indent:-18.0pt;}
ol
{margin-bottom:0cm;}
ul
{margin-bottom:0cm;}
-->
</style><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.5pt;
mso-bidi-font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;
mso-font-kerning:1.0pt;}
</style>
<![endif]-->
<p class="MsoNormal" style="text-align: left; text-indent: 21pt;" align="left"><span style="font-family: 宋体;" lang="EN-US">Web</span><span style="font-family: 宋体;">的功能会越来越强大，这点基本上没有多少人会反对。想想那么多在各种操作系统下跑的五花八门的应用程序，今天基本都能在<span lang="EN-US">Web</span>上找到类似的应用，原因太简单了，现在的客户要求已经随着<span lang="EN-US">PC</span>和互联网的发展慢慢提高了，他希望能在<span lang="EN-US">iphone</span>里看股票，希望在<span lang="EN-US">imac</span>上办公，在<span lang="EN-US">blackberry</span>里收邮件，谁能跨这么多复杂而多变的各类系统？<span lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal" style="text-align: left; text-indent: 21pt;" align="left"><span style="font-family: 宋体;">只有<span lang="EN-US">Web</span>。<span lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal" style="text-align: left; text-indent: 21pt;" align="left"><span style="font-family: 宋体;">有<span lang="EN-US">Web</span>就离不开浏览器，当然如果更加激进些，哪天整个操作系统都是<span lang="EN-US">web</span>，那可能就没有浏览器一说了。就时下来说，<span lang="EN-US">Web</span>真的已经发展的很强大了。我们可以在浏览器里看新闻，逛论坛，采购物品，收发邮件，在线协同工作，操作<span lang="EN-US">office</span>，游戏等等等等。如果说<span lang="EN-US">Web</span>相当于桌面应用程序还有什么软肋的话，那就是浏览器里的图形展示。<span lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal" style="text-align: left; text-indent: 21pt;" align="left"><span style="font-family: 宋体;">说到这篇文章的重点，先大概梳理一下。目前浏览器端的图形展示解决方案。<span lang="EN-US">Web</span>里的图形解决方案笔者自己给他大概分两种，一种叫无插件，一种叫有插件。无插件嘛就是浏览器原生支持，就像打开<span lang="EN-US">html</span>一样。有插件嘛当然就是要装插件的，插件就类似<span lang="EN-US">ActiveX</span>等。<span lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal" style="text-align: left; text-indent: 21pt;" align="left"><span style="font-family: 宋体;">先说说有插件的，里面按使用人数又有大众版和专业版，大众版笔者罗列了几个<span lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoListParagraph" style="margin-left: 39pt; text-align: left; text-indent: -18pt;" align="left"><!--[if !supportLists]--><span style="font-family: 宋体;" lang="EN-US"><span>1.<span style="font: 7pt &quot;Times New Roman&quot;;">&nbsp;
</span></span></span><!--[endif]--><span style="font-family: 宋体;" lang="EN-US">Flash</span><span style="font-family: 宋体;">，<span lang="EN-US">Flex<o:p></o:p></span></span></p>
<p class="MsoListParagraph" style="margin-left: 39pt; text-align: left; text-indent: -18pt;" align="left"><!--[if !supportLists]--><span style="font-family: 宋体;" lang="EN-US"><span>2.<span style="font: 7pt &quot;Times New Roman&quot;;">&nbsp;
</span></span></span><!--[endif]--><span style="font-family: 宋体;" lang="EN-US">Java
Swing,JavaFX<o:p></o:p></span></p>
<p class="MsoListParagraph" style="margin-left: 39pt; text-align: left; text-indent: -18pt;" align="left"><!--[if !supportLists]--><span style="font-family: 宋体;" lang="EN-US"><span>3.<span style="font: 7pt &quot;Times New Roman&quot;;">&nbsp;
</span></span></span><!--[endif]--><span style="font-family: 宋体;" lang="EN-US">Silverlight<o:p></o:p></span></p>
<p class="MsoListParagraph" style="margin-left: 39pt; text-align: left; text-indent: -18pt;" align="left"><!--[if !supportLists]--><span style="font-family: 宋体;" lang="EN-US"><span>4.<span style="font: 7pt &quot;Times New Roman&quot;;">&nbsp;
</span></span></span><!--[endif]--><span style="font-family: 宋体;" lang="EN-US">VRML<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left;" align="left"><span style="font-family: 宋体;" lang="EN-US"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal" style="text-indent: 21pt;"><span style="font-family: 宋体;">在这几项技术</span><span lang="EN-US">Flash</span><span style="font-family: 宋体;">，</span><span lang="EN-US">Flex</span><span style="font-family: 宋体;">感觉是个比较有前途的方向，面向对象的语言，动静结合的对象，基本各类浏览器都兼容的插件和现实效果，丰富的动态效果和绚丽的展示等，都是目前</span><span lang="EN-US">Web</span><span style="font-family: 宋体;">里图形展示的</span><span lang="EN-US">Top one</span><span style="font-family: 宋体;">。唯一让人感觉缺憾的是</span><span lang="EN-US">adobe</span><span style="font-family: 宋体;">这个设计师出生的公司，总让程序员感觉不爽</span><span lang="EN-US">(</span><span style="font-family: 宋体;">要是</span><span lang="EN-US">IBM</span><span style="font-family: 宋体;">出的这技术该多好</span><span lang="EN-US">)</span><span style="font-family: 宋体;">。所以笔者是对</span><span lang="EN-US">Flex</span><span style="font-family: 宋体;">的源码实现比较不齿，这哪里像个精品代码应有的样子。如果说还有什么缺陷，效率是一个，无法集成入搜索是一个，回退算是一个吧。</span></p>
<p class="MsoNormal" style="text-indent: 21pt;"><span lang="EN-US">Swing</span><span style="font-family: 宋体;">要在</span><span lang="EN-US">Web</span><span style="font-family: 宋体;">展示，只能</span><span lang="EN-US">Applet</span><span style="font-family: 宋体;">了，这项被千万</span><span lang="EN-US">java</span><span style="font-family: 宋体;">程序员唾骂的技术还是有顽强的生命力。为什么？实在是没有办法，除了它还能谁？</span><span lang="EN-US">(</span><span style="font-family: 宋体;">相对</span><span lang="EN-US">java</span><span style="font-family: 宋体;">程序员</span><span lang="EN-US">) </span><span style="font-family: 宋体;">其实</span><span lang="EN-US">swing</span><span style="font-family: 宋体;">是个很不错的技术，可惜了</span><span lang="EN-US">Sun</span><span style="font-family: 宋体;">好像不在意</span><span lang="EN-US">Applet</span><span style="font-family: 宋体;">的巨大潜力，只关系它的</span><span lang="EN-US">J2EE</span><span style="font-family: 宋体;">去了。唉！好在亡羊补牢，来了个新的</span><span lang="EN-US">JavaFX</span><span style="font-family: 宋体;">，只是</span><span lang="EN-US">java</span><span style="font-family: 宋体;">程序员已经对</span><span lang="EN-US">Applet</span><span style="font-family: 宋体;">心有余悸，</span><span lang="EN-US">JavaFx</span><span style="font-family: 宋体;">发展如何，再看看吧。</span></p>
<p class="MsoNormal" style="text-indent: 21pt;"><span style="font-family: 宋体;">微软的程序员有大奔头了，因为他们有了</span><span lang="EN-US">SL</span><span style="font-family: 宋体;">，看看</span><span lang="EN-US">SL</span><span style="font-family: 宋体;">刚刚出来时候，那声势浩大的场面，真的是</span><span lang="EN-US">&#8230;&#8230;</span><span style="font-family: 宋体;">如果我是微软程序员，我肯定会搞搞</span><span lang="EN-US">SL</span><span style="font-family: 宋体;">，虽然它组件依旧很少，客户端依旧安装率不高。我就不怕，等的就是内置</span><span lang="EN-US">SL</span><span style="font-family: 宋体;">，绝对可以秒掉很多</span><span lang="EN-US">Flash</span><span style="font-family: 宋体;">的市场。</span></p>
<p class="MsoNormal" style="text-indent: 21pt;"><span lang="EN-US">VRML</span><span style="font-family: 宋体;">最近才了解到的一个技术，看了下效果还是很震撼，可能程序员不是很熟原因也是它支持的公司基本都是设计软件的公司。插件的安装率估计是最低的，不了解的不说，一笔带过。</span></p>
<p class="MsoNormal" style="text-indent: 21pt;"><span lang="EN-US"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal" style="text-indent: 21pt;"><span style="font-family: 宋体;">上面说完了有插件，下面轮到无插件了，无插件的估计就那几个：</span></p>
<p class="MsoListParagraph" style="margin-left: 39pt; text-indent: -18pt;"><!--[if !supportLists]--><span lang="EN-US"><span>1.<span style="font: 7pt &quot;Times New Roman&quot;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><!--[endif]--><span lang="EN-US">VML</span></p>
<p class="MsoListParagraph" style="margin-left: 39pt; text-indent: -18pt;"><!--[if !supportLists]--><span lang="EN-US"><span>2.<span style="font: 7pt &quot;Times New Roman&quot;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><!--[endif]--><span lang="EN-US">SVG</span></p>
<p class="MsoListParagraph" style="margin-left: 39pt; text-indent: -18pt;"><!--[if !supportLists]--><span lang="EN-US"><span>3.<span style="font: 7pt &quot;Times New Roman&quot;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><!--[endif]--><span lang="EN-US">Canvas</span></p>
<p class="MsoNormal" style="text-indent: 21pt;"><span lang="EN-US">VML(Vector
Markup Language) </span><span style="font-family: 宋体;">微软的早期浏览器支持的图形展示的一种格式。最大的特点就是只有</span><span lang="EN-US">IE</span><span style="font-family: 宋体;">支持，微软估计当年根本没想到</span><span lang="EN-US">IE</span><span style="font-family: 宋体;">的占有率会跌到</span><span lang="EN-US">60%</span><span style="font-family: 宋体;">，唉千万不要低估消费者。你不行就靠边，我用鼠标说话。</span></p>
<p class="MsoNormal" style="text-indent: 21pt;"><span lang="EN-US">SVG(Scalable
Vector Graphics) </span><span style="font-family: 宋体;">我在无插件里最看好的技术，</span><span lang="EN-US">XML</span><span style="font-family: 宋体;">的子集，</span><span lang="EN-US">W3C</span><span style="font-family: 宋体;">下的一个项目，早几年不瘟不火的，这几年起来了，何以见得？</span><span lang="EN-US">HTML5</span><span style="font-family: 宋体;">的标准，</span><span lang="EN-US">IE9</span><span style="font-family: 宋体;">原生支持，看看各大厂家，谁希望被</span><span lang="EN-US">Adobe</span><span style="font-family: 宋体;">的</span><span lang="EN-US">Flash</span><span style="font-family: 宋体;">把持这么大一块市场。当然由于微软的原因</span><span lang="EN-US">IE9</span><span style="font-family: 宋体;">以前的版本还都需要插件才能支持</span><span lang="EN-US">SVG</span><span style="font-family: 宋体;">。</span></p>
<p class="MsoNormal" style="text-indent: 21pt;"><span lang="EN-US">Canvas HTML5</span><span style="font-family: 宋体;">里另外一个重头戏，介绍也是很多了，至于为什么会既有</span><span lang="EN-US">SVG</span><span style="font-family: 宋体;">又有</span><span lang="EN-US">Canvas</span><span style="font-family: 宋体;">我还真的不甚明白，谁知道</span><span lang="EN-US">W3C</span><span style="font-family: 宋体;">每天都在琢磨什么呢。最大的特点是</span><span lang="EN-US">2d</span><span style="font-family: 宋体;">的方式绘画图形，而不像</span><span lang="EN-US">SVG</span><span style="font-family: 宋体;">是标签式的。</span></p>
<img src ="http://www.blogjava.net/oathleo/aggbug/324093.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/oathleo/" target="_blank">oathleo</a> 2010-06-21 21:36 <a href="http://www.blogjava.net/oathleo/archive/2010/06/21/SVG_Canvas_VML_FLEX_SL.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Internet Explorer 9 预览版  SVG 第二春</title><link>http://www.blogjava.net/oathleo/archive/2010/03/17/twaver_SVG_IE.html</link><dc:creator>oathleo</dc:creator><author>oathleo</author><pubDate>Wed, 17 Mar 2010 01:02:00 GMT</pubDate><guid>http://www.blogjava.net/oathleo/archive/2010/03/17/twaver_SVG_IE.html</guid><wfw:comment>http://www.blogjava.net/oathleo/comments/315649.html</wfw:comment><comments>http://www.blogjava.net/oathleo/archive/2010/03/17/twaver_SVG_IE.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/oathleo/comments/commentRss/315649.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/oathleo/services/trackbacks/315649.html</trackback:ping><description><![CDATA[<strong>&nbsp;&nbsp;&nbsp; </strong>微软IE团队总经理迪恩&#183;哈克莫维奇(Dean  Hachamovich)今天发表声明称，IE
9与以往的IE版本有很大不同。他表示，微软将每8周对预览版IE  9进行一次升级，第一次升级将在5月中期。但哈克莫维奇没有披露正式版IE
9的发布时间。<br />
<p><img alt="" src="http://www.cnbeta.com/articles/pic/down.gif" /><strong>下
载:</strong><a target="_blank" href="http://ie.microsoft.com/testdrive/">Internet
Explorer 9 预览版</a><br />
<br />
微软称，预览版IE 9还不是一款完整的浏览器，目前还不包括地址栏等用户导航工具以及安全功能。微软发布了一个它称之为&#8220;Test
Drive&#8221;的网站，方便网站设计人员、应用开发者了解预览版IE 9的功能。<br />
<br />
预览版IE 9只支持Windows 7、Windows Vista SP2和Windows Server R2。IE
9可以利用图形处理器的处理能力加速文本和图形的渲染。<br />
<br />
用户可以从Test Drive网站下载大小为31MB的预览版IE 9。</p>
<p><br />
</p>
<p>=============================================================</p>
<p>里面图形的Demo 包括Graphics 里面的几个例子，都是用SVG实现，包括了Map Chart等。有了IE支持，看样子SVG又要发第二春了。</p>
<p>Canvas暂时还没有看到使用例子。</p>
<img src ="http://www.blogjava.net/oathleo/aggbug/315649.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/oathleo/" target="_blank">oathleo</a> 2010-03-17 09:02 <a href="http://www.blogjava.net/oathleo/archive/2010/03/17/twaver_SVG_IE.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>TWaver3.1 Web SVG推出 拓扑新元素 Grid 机架板</title><link>http://www.blogjava.net/oathleo/archive/2009/07/21/Chass_Grid.html</link><dc:creator>oathleo</dc:creator><author>oathleo</author><pubDate>Tue, 21 Jul 2009 09:00:00 GMT</pubDate><guid>http://www.blogjava.net/oathleo/archive/2009/07/21/Chass_Grid.html</guid><wfw:comment>http://www.blogjava.net/oathleo/comments/287678.html</wfw:comment><comments>http://www.blogjava.net/oathleo/archive/2009/07/21/Chass_Grid.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/oathleo/comments/commentRss/287678.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/oathleo/services/trackbacks/287678.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.blogjava.net/oathleo/archive/2009/07/21/Chass_Grid.html'>阅读全文</a><img src ="http://www.blogjava.net/oathleo/aggbug/287678.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/oathleo/" target="_blank">oathleo</a> 2009-07-21 17:00 <a href="http://www.blogjava.net/oathleo/archive/2009/07/21/Chass_Grid.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>IE下js无法继承toString方法</title><link>http://www.blogjava.net/oathleo/archive/2009/07/06/TWaver_JS.html</link><dc:creator>oathleo</dc:creator><author>oathleo</author><pubDate>Mon, 06 Jul 2009 05:50:00 GMT</pubDate><guid>http://www.blogjava.net/oathleo/archive/2009/07/06/TWaver_JS.html</guid><wfw:comment>http://www.blogjava.net/oathleo/comments/285677.html</wfw:comment><comments>http://www.blogjava.net/oathleo/archive/2009/07/06/TWaver_JS.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/oathleo/comments/commentRss/285677.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/oathleo/services/trackbacks/285677.html</trackback:ping><description><![CDATA[override: function(origclass, overrides){<br />            if (overrides) {<br />                var p = origclass.prototype;<br />                for (var method in overrides) {<br /><font color="#ff0000">                //IE下无法遍历到<br />               //"toString", "toLocaleString", "valueOf", <br />               //"hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable"这几个方法</font><br /><br />                    p[method] = overrides[method];<br />                }<br />                if (TWaver.isIE) {  <font color="#ff0000">//IE 问题，目前只有'toString'用到，先处理</font><br />                    if (p['toString'] != overrides['toString']) {<br />                        p['toString'] = overrides['toString'];<br />                    }<br />                }<br />            }<br />        }<br /><br /><img src ="http://www.blogjava.net/oathleo/aggbug/285677.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/oathleo/" target="_blank">oathleo</a> 2009-07-06 13:50 <a href="http://www.blogjava.net/oathleo/archive/2009/07/06/TWaver_JS.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JS instanceof 判断类型 问题</title><link>http://www.blogjava.net/oathleo/archive/2009/06/29/284647.html</link><dc:creator>oathleo</dc:creator><author>oathleo</author><pubDate>Mon, 29 Jun 2009 10:11:00 GMT</pubDate><guid>http://www.blogjava.net/oathleo/archive/2009/06/29/284647.html</guid><wfw:comment>http://www.blogjava.net/oathleo/comments/284647.html</wfw:comment><comments>http://www.blogjava.net/oathleo/archive/2009/06/29/284647.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/oathleo/comments/commentRss/284647.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/oathleo/services/trackbacks/284647.html</trackback:ping><description><![CDATA[
		<span style="font-family: Arial;">
				<strong>判断变量类型</strong>：一般情况下，可以先用typeof 运算符，如果结果是"object"，再用<span class="hilite2">instanceof</span>来判断；<br /> 特别的地方是：<br />    <span class="hilite2">instanceof</span>不认为原始类型值的变量是对象，<br /><br /><div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: rgb(0, 0, 0);">   </span><span style="color: rgb(0, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">. </span><span style="color: rgb(0, 0, 255);">var</span><span style="color: rgb(0, 0, 0);"> temp</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">a string for test</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">;   <br />   </span><span style="color: rgb(0, 0, 0);">2</span><span style="color: rgb(0, 0, 0);">. </span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">下面这句返回"string"   </span><span style="color: rgb(0, 128, 0);"><br /></span><span style="color: rgb(0, 0, 0);">   </span><span style="color: rgb(0, 0, 0);">3</span><span style="color: rgb(0, 0, 0);">. alert( </span><span style="color: rgb(0, 0, 255);">typeof</span><span style="color: rgb(0, 0, 0);"> temp);   <br />   </span><span style="color: rgb(0, 0, 0);">4</span><span style="color: rgb(0, 0, 0);">. </span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">下面这句返回"false"   </span><span style="color: rgb(0, 128, 0);"><br /></span><span style="color: rgb(0, 0, 0);">   </span><span style="color: rgb(0, 0, 0);">5</span><span style="color: rgb(0, 0, 0);">. alert(temp </span><span style="color: rgb(0, 0, 255);">instanceof</span><span style="color: rgb(0, 0, 0);"> String);   <br />   </span><span style="color: rgb(0, 0, 0);">6</span><span style="color: rgb(0, 0, 0);">.   <br />   </span><span style="color: rgb(0, 0, 0);">7</span><span style="color: rgb(0, 0, 0);">. </span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">看看Ext内部实现，判断String类型  </span><span style="color: rgb(0, 128, 0);"><br /></span><span style="color: rgb(0, 0, 0);">   </span><span style="color: rgb(0, 0, 0);">8</span><span style="color: rgb(0, 0, 0);">. if(</span><span style="color: rgb(0, 0, 255);"></span><span style="color: rgb(0, 0, 0);">  typeof </span><span style="font-family: Arial;"><span style="color: rgb(0, 0, 0);">temp</span><span style="color: rgb(0, 0, 0);"></span></span><span style="color: rgb(0, 0, 0);">== "string"){<br />   9. }<br /></span></div><br />其他附加问题：<br /></span>
		<ul>
				<li>
						<strong>null</strong>：表示尚未存在的对象，注意，尽管尚未存在，也是个对象啊，所以用typeof检测一个null值变量的结果是Object；不过，为了便于写if语句，在<span class="hilite1">js</span>中，"undefined==false", "null=false", 因此，"undefined==null"。 </li>
				<li>
						<strong>整数</strong>：最容易犯的错误就是，忘了070其实是个八进制数，相当于十进制的56； </li>
				<li>
						<strong>浮点数</strong>：“在进行运算之前，真正存储的是字符串”——这应该是解释执行的本质决定的吧——直接后果是，alert(0.8)这样的语句可以正确输出，而alert(2*0.8)的输出就成了"2.40000000000000003" </li>
				<li>
						<strong>数字边界</strong>：
数字有几个边界值，分别是Number.MAX_VALUE(最大值), Number.MIN_VALUE(最小值),
Number.POSITIVE_INFINITY(正无穷), Number.NEGATIVE_INFINITY(负无穷),
Infinity(无穷大，-Infinity，这个有点莫名其妙，不知道为啥又搞出一套)；特别地，还有一个isFinit(iNumber)函数来判
断数字是否为无穷大。 </li>
				<li>
						<strong>NaN</strong>：一些需要数字作为参数的函数，当传入的实参无法转换为数字时，往往会返回这个值；关于NaN，最重要的就是要记住NaN!=NaN，因此判断一个变量是否为NaN，一定要使用isNaN(var)函数。 </li>
				<li>
						<strong>将字符串转换为数字</strong>：sVar.parseInt()
是最常用的函数，也最容易出错，为了保险起见，最好每次调用的时候，都加上“进制”的参数，比如：a.parseInt(10)，就制定了按十进制转换字
符串a；Number(sVar)也是一种转换方式，不同的是，它要求整个字符串都得是有效数字，因此Number("4.5.5")将返回NaN； </li>
		</ul>
		<br />
<img src ="http://www.blogjava.net/oathleo/aggbug/284647.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/oathleo/" target="_blank">oathleo</a> 2009-06-29 18:11 <a href="http://www.blogjava.net/oathleo/archive/2009/06/29/284647.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JS Map 总结</title><link>http://www.blogjava.net/oathleo/archive/2009/06/18/js_map.html</link><dc:creator>oathleo</dc:creator><author>oathleo</author><pubDate>Thu, 18 Jun 2009 08:12:00 GMT</pubDate><guid>http://www.blogjava.net/oathleo/archive/2009/06/18/js_map.html</guid><wfw:comment>http://www.blogjava.net/oathleo/comments/283072.html</wfw:comment><comments>http://www.blogjava.net/oathleo/archive/2009/06/18/js_map.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/oathleo/comments/commentRss/283072.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/oathleo/services/trackbacks/283072.html</trackback:ping><description><![CDATA[js 里 Object本身可以做为Map。<br />条件是Key只能是String<br /><br />如果要用对象做为Key，这个Map可以来实现。<br />效率上由于_getIndex方法每次都要遍历，耗时很长，所以通常在1:10左右<br /><br />总结以上，如果Map的Key是String，最好还是用Object来实现。<br />而且用in来遍历Map，效率上不是网上说的那么差，和for()差不多<br /><br />TWaver.Map = function(){<br />    this._entrys = null;<br />    this.initialize.apply(this, arguments);<br />}<br /><br />TWaver.Map.prototype = {<br />    initialize: function(){<br />        this._entrys = new Array();<br />    },<br />    put: function(key, value){<br />        if (key == null || key == undefined) {<br />            return;<br />        }<br />        var index = this._getIndex(key);<br />        if (index == -1) {<br />            var entry = new Object();<br />            entry.key = key;<br />            entry.value = value;<br />            this._entrys[this._entrys.length] = entry;<br />        }else{<br />            this._entrys[index].value = value;<br />        }        <br />    },<br />    get: function(key){<br />        var index = this._getIndex(key);<br />        return (index != -1) ? this._entrys[index].value : null;<br />    },<br />    remove: function(key){<br />        var index = this._getIndex(key);<br />        if (index != -1) {<br />            this._entrys.splice(index, 1);<br />        }<br />    },<br />    clear: function(){<br />        this._entrys.length = 0;;<br />    },<br />    contains: function(key){<br />        var index = this._getIndex(key);<br />        return (index != -1) ? true : false;<br />    },<br />    getCount: function(){<br />        return this._entrys.length;<br />    },<br />    getEntrys: function(){<br />        return this._entrys;<br />    },<br />    _getIndex: function(key){<br />        if (key == null || key == undefined) {<br />            return -1;<br />        }<br />        var _length = this._entrys.length;<br />        for (var i = 0; i &lt; _length; i++) {<br />            var entry = this._entrys[i];<br />            if (entry == null || entry == undefined) {<br />                continue;<br />            }<br />            if (entry.key === key) {//equal<br />                return i;<br />            }<br />        }<br />        return -1;<br />    }<br />}<br /><br /><br /><img src ="http://www.blogjava.net/oathleo/aggbug/283072.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/oathleo/" target="_blank">oathleo</a> 2009-06-18 16:12 <a href="http://www.blogjava.net/oathleo/archive/2009/06/18/js_map.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>快速排序 （转）</title><link>http://www.blogjava.net/oathleo/archive/2009/06/17/282819.html</link><dc:creator>oathleo</dc:creator><author>oathleo</author><pubDate>Wed, 17 Jun 2009 04:10:00 GMT</pubDate><guid>http://www.blogjava.net/oathleo/archive/2009/06/17/282819.html</guid><wfw:comment>http://www.blogjava.net/oathleo/comments/282819.html</wfw:comment><comments>http://www.blogjava.net/oathleo/archive/2009/06/17/282819.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/oathleo/comments/commentRss/282819.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/oathleo/services/trackbacks/282819.html</trackback:ping><description><![CDATA[在ie6.0中快速排序算法比Array对象的sort方法快多了，对于元素比较少的，快速排序的速度基本上是sort方法的5倍左右，对于30000个元素快速排序是sort方法速度的十几倍 <br />在ff2.0中两种排序算法速度基本上差不多，快速排序算法稍微快一点<br /><br />&lt;script&gt; <br />function rand(m,n){ <br />      //生成一个m、n之间的整数 <br />        var i=Math.random(); <br />        return Math.round((n-m)*i+m); <br /> } <br />            <br />            <br />function getRandomArr(m,n,l){ <br />  //m：生成随即整数的最小值，n：生成随即整数的最大值，l：生成的数组的长度 <br />    var resultArr=[]; <br />    for(var i=0;i&lt;l;i++){ <br />        resultArr.push(rand(m,n)) <br />    } <br />    return resultArr; <br />} <br />     <br />function partition(a,st,en)  <br />{  <br />    var s=st;  <br />    var e=en+1;  <br />    var temp=a[s];  <br />    while(1)  <br />    {  <br />        while(a[++s]&lt;temp);  <br />        while(a[--e]&gt;temp);  <br />        if(s&gt;e)break;  <br />        var tem=a[s];  <br />        a[s]=a[e];  <br />        a[e]=tem;  <br />    }  <br />    a[st]=a[e];  <br />    a[e]=temp;  <br />    return e;  <br />}  <br /><br />function doSort(a,s,e)  <br />{  <br />    if(s&lt;e)  <br />    {  <br />        var pos=partition(a,s,e);  <br />        doSort(a,s,pos-1);  <br />        doSort(a,pos+1,e);  <br />    }  <br />}  <br />     <br />Array.prototype.quickSort = function()  <br />{  <br />      doSort(this,0,this.length-1);  <br />} <br /><br /><br />function sortIntF(a,b){return a-b} <br />function pk(num){ <br />    //num: 用于排序的数组的元素个数 <br />    //生成用于排序的数组 <br />    var arr=getRandomArr(1,999999,num); <br />     <br />    //当元素个数小于10000时，执行n次取平均值  <br />    var n=Math.ceil(10000/num); <br />     <br />    //生成多个用于排序的数组的拷贝 <br />    var quickSortArrs=[]; <br />    var sortArrs=[]; <br />    for(var i=0;i&lt;n;i++){ <br />        quickSortArrs.push(arr.slice(0)); <br />        sortArrs.push(arr.slice(0)); <br />    } <br />     <br />    var t1=new Date(); <br />     <br />    for(var i=0;i&lt;n;i++){ <br />        quickSortArrs[i].quickSort(); <br />    } <br />     <br />    var t2=new Date(); <br />     <br />    for(var i=0;i&lt;n;i++){ <br />        sortArrs[i].sort(sortIntF); <br />    } <br />     <br />    var t3=new Date(); <br />     <br />    alert("性能比较，对于"+num+"个元素的数组，平均每次排序花费时间如下：\n" <br />    +"Array.prototype.sort："+((t3-t2)/n)+"ms\n" <br />    +"quickSort："+((t2-t1)/n)+"ms\n" <br />    ); <br />     <br />    alert("排序结果是否正确："+(sortArrs[0].join()==quickSortArrs[0].join())); <br />} <br /><br />pk(500); <br />pk(2000); <br />pk(30000); <br />&lt;/script&gt; <br /><img src ="http://www.blogjava.net/oathleo/aggbug/282819.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/oathleo/" target="_blank">oathleo</a> 2009-06-17 12:10 <a href="http://www.blogjava.net/oathleo/archive/2009/06/17/282819.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>TWaver2.6 Released!电信拓扑Web解决方案</title><link>http://www.blogjava.net/oathleo/archive/2008/12/17/Web_topology_network.html</link><dc:creator>oathleo</dc:creator><author>oathleo</author><pubDate>Wed, 17 Dec 2008 03:15:00 GMT</pubDate><guid>http://www.blogjava.net/oathleo/archive/2008/12/17/Web_topology_network.html</guid><wfw:comment>http://www.blogjava.net/oathleo/comments/246816.html</wfw:comment><comments>http://www.blogjava.net/oathleo/archive/2008/12/17/Web_topology_network.html#Feedback</comments><slash:comments>15</slash:comments><wfw:commentRss>http://www.blogjava.net/oathleo/comments/commentRss/246816.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/oathleo/services/trackbacks/246816.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 电信拓扑Web解决方案&nbsp;&nbsp;<a href='http://www.blogjava.net/oathleo/archive/2008/12/17/Web_topology_network.html'>阅读全文</a><img src ="http://www.blogjava.net/oathleo/aggbug/246816.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/oathleo/" target="_blank">oathleo</a> 2008-12-17 11:15 <a href="http://www.blogjava.net/oathleo/archive/2008/12/17/Web_topology_network.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Javascript与CSS在IE和Firefox中的误区及区别（引用）</title><link>http://www.blogjava.net/oathleo/archive/2008/07/07/212971.html</link><dc:creator>oathleo</dc:creator><author>oathleo</author><pubDate>Mon, 07 Jul 2008 02:40:00 GMT</pubDate><guid>http://www.blogjava.net/oathleo/archive/2008/07/07/212971.html</guid><wfw:comment>http://www.blogjava.net/oathleo/comments/212971.html</wfw:comment><comments>http://www.blogjava.net/oathleo/archive/2008/07/07/212971.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/oathleo/comments/commentRss/212971.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/oathleo/services/trackbacks/212971.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.blogjava.net/oathleo/archive/2008/07/07/212971.html'>阅读全文</a><img src ="http://www.blogjava.net/oathleo/aggbug/212971.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/oathleo/" target="_blank">oathleo</a> 2008-07-07 10:40 <a href="http://www.blogjava.net/oathleo/archive/2008/07/07/212971.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SVG主要元素和属性</title><link>http://www.blogjava.net/oathleo/archive/2008/07/01/211912.html</link><dc:creator>oathleo</dc:creator><author>oathleo</author><pubDate>Tue, 01 Jul 2008 07:18:00 GMT</pubDate><guid>http://www.blogjava.net/oathleo/archive/2008/07/01/211912.html</guid><wfw:comment>http://www.blogjava.net/oathleo/comments/211912.html</wfw:comment><comments>http://www.blogjava.net/oathleo/archive/2008/07/01/211912.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/oathleo/comments/commentRss/211912.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/oathleo/services/trackbacks/211912.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.blogjava.net/oathleo/archive/2008/07/01/211912.html'>阅读全文</a><img src ="http://www.blogjava.net/oathleo/aggbug/211912.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/oathleo/" target="_blank">oathleo</a> 2008-07-01 15:18 <a href="http://www.blogjava.net/oathleo/archive/2008/07/01/211912.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JS 常用功能</title><link>http://www.blogjava.net/oathleo/archive/2008/06/30/211720.html</link><dc:creator>oathleo</dc:creator><author>oathleo</author><pubDate>Mon, 30 Jun 2008 10:21:00 GMT</pubDate><guid>http://www.blogjava.net/oathleo/archive/2008/06/30/211720.html</guid><wfw:comment>http://www.blogjava.net/oathleo/comments/211720.html</wfw:comment><comments>http://www.blogjava.net/oathleo/archive/2008/06/30/211720.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/oathleo/comments/commentRss/211720.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/oathleo/services/trackbacks/211720.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.blogjava.net/oathleo/archive/2008/06/30/211720.html'>阅读全文</a><img src ="http://www.blogjava.net/oathleo/aggbug/211720.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/oathleo/" target="_blank">oathleo</a> 2008-06-30 18:21 <a href="http://www.blogjava.net/oathleo/archive/2008/06/30/211720.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JS 类的公有私有</title><link>http://www.blogjava.net/oathleo/archive/2008/06/17/208617.html</link><dc:creator>oathleo</dc:creator><author>oathleo</author><pubDate>Tue, 17 Jun 2008 06:23:00 GMT</pubDate><guid>http://www.blogjava.net/oathleo/archive/2008/06/17/208617.html</guid><wfw:comment>http://www.blogjava.net/oathleo/comments/208617.html</wfw:comment><comments>http://www.blogjava.net/oathleo/archive/2008/06/17/208617.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/oathleo/comments/commentRss/208617.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/oathleo/services/trackbacks/208617.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.blogjava.net/oathleo/archive/2008/06/17/208617.html'>阅读全文</a><img src ="http://www.blogjava.net/oathleo/aggbug/208617.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/oathleo/" target="_blank">oathleo</a> 2008-06-17 14:23 <a href="http://www.blogjava.net/oathleo/archive/2008/06/17/208617.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>IE 兼容问题</title><link>http://www.blogjava.net/oathleo/archive/2008/05/29/203813.html</link><dc:creator>oathleo</dc:creator><author>oathleo</author><pubDate>Thu, 29 May 2008 05:59:00 GMT</pubDate><guid>http://www.blogjava.net/oathleo/archive/2008/05/29/203813.html</guid><wfw:comment>http://www.blogjava.net/oathleo/comments/203813.html</wfw:comment><comments>http://www.blogjava.net/oathleo/archive/2008/05/29/203813.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/oathleo/comments/commentRss/203813.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/oathleo/services/trackbacks/203813.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.blogjava.net/oathleo/archive/2008/05/29/203813.html'>阅读全文</a><img src ="http://www.blogjava.net/oathleo/aggbug/203813.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/oathleo/" target="_blank">oathleo</a> 2008-05-29 13:59 <a href="http://www.blogjava.net/oathleo/archive/2008/05/29/203813.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ext服务器交互技术详解(一) </title><link>http://www.blogjava.net/oathleo/archive/2008/04/07/191194.html</link><dc:creator>oathleo</dc:creator><author>oathleo</author><pubDate>Mon, 07 Apr 2008 03:00:00 GMT</pubDate><guid>http://www.blogjava.net/oathleo/archive/2008/04/07/191194.html</guid><wfw:comment>http://www.blogjava.net/oathleo/comments/191194.html</wfw:comment><comments>http://www.blogjava.net/oathleo/archive/2008/04/07/191194.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/oathleo/comments/commentRss/191194.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/oathleo/services/trackbacks/191194.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Ext是一个非常好的Ajax框架，其华丽的外观表现确实令我们折服，然而一个应用始终离开不服务器端，因此在实现开发中我们需要对Ext与服务器端的交互技术有较为详细的了解，在开发中才能游刃有余地应用。本文对Ext应用中与服务器交互的常用方法作具体的介绍，本文的内容大部份来源于《ExtJS实用开发指南》。　　总体来说，Ext与服务器端的交互应用可以归结为三种类型，包含表单FormPanel的处理(提交、...&nbsp;&nbsp;<a href='http://www.blogjava.net/oathleo/archive/2008/04/07/191194.html'>阅读全文</a><img src ="http://www.blogjava.net/oathleo/aggbug/191194.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/oathleo/" target="_blank">oathleo</a> 2008-04-07 11:00 <a href="http://www.blogjava.net/oathleo/archive/2008/04/07/191194.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>