<bdo id="xkgs2"><xmp id="xkgs2">

<bdo id="xkgs2"><progress id="xkgs2"><bdo id="xkgs2"></bdo></progress></bdo>

<nobr id="xkgs2"></nobr>

<bdo id="xkgs2"></bdo>

<menuitem id="xkgs2"><xmp id="xkgs2"><menuitem id="xkgs2"></menuitem>
<menuitem id="xkgs2"><font id="xkgs2"><samp id="xkgs2"></samp></font></menuitem><menuitem id="xkgs2"><xmp id="xkgs2"><menuitem id="xkgs2"><xmp id="xkgs2">

<bdo id="xkgs2"><xmp id="xkgs2">

<menuitem id="xkgs2"><xmp id="xkgs2">

<bdo id="xkgs2"></bdo>
<menuitem id="xkgs2"><xmp id="xkgs2"><samp id="xkgs2"></samp>

<b id="xkgs2"><ins id="xkgs2"><samp id="xkgs2"></samp></ins></b>

新疆軟件開發

本站首頁 軟件開發 成功案例 公司新聞 公司簡介 客服中心 軟件技術 網站建設
  您現在的位置: 新疆二域軟件開發公司 >> 開發語言 >> 文章正文

看看javascript是如何繪圖的

——點的實現與速度測試
Ps:本文只是一菜鳥畫鴨之筆,有不對之處歡迎高手們指證!

一、背景知識:
   通過搜索,網上關于web繪圖的實現大致有以下三類:
1 插件實現
     優點:功能豐富。護展性好,速度快。
     缺點:首次訪問必須下載插件。
2 flash實現
     優點:首次訪問不需要下載插件(大部分瀏覽已經安裝有flash插件),畫面質量高。
     缺點:速度較慢,需要懂得flash相關編程的知識。
3 js實現
     優點:首次訪問不需要下載插件
     缺點:速度應該慢于插件的實現(沒有測試),實現方法較牽強。
本文只介紹js實現。構思參照neweroica 于2003年發布的JS2D函數集。在小學的幾何中我們就明白,繪圖平面由線構成,而線是由點構成,所以,只要我們解決了點的繪制,則線,面只是一個循序漸進的過程。

二、思路解析:
 在newerroica的JS2D函數集中,點的繪制是通過table標簽來實現的。也就是繪制一個無邊框,無填充,一個單元格的表格,來實現點的顯示。點的顏色、大小、位置則由table標簽的style屬性來定義。代碼如下:
//Dottable.js

 

1/**//************* 畫點 **************
2  x,y     點所在的屏幕坐標(像素)
3  color   顏色(字符串值)
4  size    大。ㄏ袼兀
5**********************************/
6function drawDot(x,y,color,size){
7  document.write("<table border=’0’ cellspacing=0 cellpadding=0><tr><td style=’position: absolute; left: "+(x)+"; top: "+(y)+";background-color: "+color+"’ width="+size+" height="+size+"></td></tr></table>");
8}

我的改進思路是,如果table可以實現,那么div是否同樣可以實現,并且能夠達到更快的速度呢,我簡單的修改代碼如下:
//Dotdiv.js

1/**//**********畫點***********
2x,y   點的坐標(像素)
3color 點的顏色(字符串值)
4size  點在大小(像素)
5
6**********************/
7function drawDot(x,y,color,size){
8  document.write("<div style=’position: absolute; border:0;left: "+(x)+"; top: "+(y)+";background-color:"+color+"; width:"+size+"; height:"+size+"; overflow:hidden;’></div>");
9}
那么div是否真的比table快呢?我做了個簡單的js測試程序段,這個程序段同樣可用于更多的js腳本性能測試,代碼如下:
//timer.js

 1/**//***********計時器****************
 2startime()       開始計時
 3endtime()        結束計時并輸出時間
4
 5*********************************/
 6var ms;
 7//開始計時
 8function starttime() {
 9 then = new Date();
10 ms= then.getTime();
11 
12}
13
14//結束計時
15function endtime() {
16        now = new Date();
17 ms=now.getTime()-ms;
18 ms=ms/1000;
19 alert("共用時:"+ms+"秒");
20}
三、測試
構建測試用例,我們用兩種方法,分別沿45度畫5百個點,分別對所用時間計數:
Ps:我的機器配置:方正t3200c筆記本電腦,p41.5的cpu,內存384M。
Table實現的測試用例代碼:

 1<html>
 2<head>
 3</head>
 4<body>
 5<script src="timer.js">
 6</script>
 7<script src="dottable.js">
 8</script>
 9
10
11<script language="javascript">
12    starttime();
13    for(i=0;i<500;i++){
14        drawDot(1+i,1+i,"ff0000",1);
15    } 
16
17    endtime();
18</script>
19
20</body>
21</html>
運行后返回時間:0.27秒
Div實現的測試用例代碼:

 1<html>
 2<head>
 3</head>
 4<body>
 5<script src="timer.js">
 6</script>
 7<script src="dotdiv.js">
 8</script>
 9
10
11<script language="javascript">
12    starttime();
13    for(i=0;i<500;i++){
14        drawDot(1+i,1+i,"ff0000",1);
15    } 
16
17    endtime();
18</script>
19
20</body>
21</html>
運行后返回時間:0.11秒

顯然,div的運行時間明顯快于table.測試成功。

 

作者:未知 | 文章來源:未知 | 更新時間:2007-12-15 16:32:47

  • 上一篇文章:

  • 下一篇文章:

  • 相關文章:
    搜集整理的javascript select操作的例子
    javascript中createTextRange如何使用
    如何使用JavaScript判斷瀏覽器類型代碼
    如何在JavaScript實現彈出層效果
    JAVASCRIPT如何判斷大小寫字母
    J2EE開發中的錯誤處理
    javascript的function的總結
    Javascript訪問html頁面的控件
    軟件技術
    · 開發語言
    · Java技術
    · .Net技術
    · 數據庫開發
    最新文章  
    ·搜集整理的asp.net的驗證方
    ·各種FOR循環結構的整理
    ·軟件項目開發中應該考慮那
    ·搜集整理的javascript sel
    ·軟件開發中項目經理有那些
    ·學習如何在Lambda表達式進
    ·C++基礎知識:結構體數據的
    ·C#實現短信發送程序的例子
    ·sun最近修補了一部分java的
    ·rss定制的另外一種實現方式
    ·delphi實現利用arp欺騙來實
    ·基礎學習:基于WF的流程框
    ·網絡編程中怎樣得知一次數
    ·如何逆序輸出單鏈表?
    ·軟件開發過程中的性能設計
    關于我們 | 軟件開發 | 下載試用 | 客服中心 | 聯系我們 | 友情鏈接 | 網站地圖 | 新疆電子地圖 | RSS訂閱
    版權所有 © 2016 新疆二域軟件開發網 www.asuburbanlife.com All Rights Reserved 新ICP備14003571號
    新疆軟件開發總機:0991-4842803、4811639.
    客服QQ:596589785 ;地址:新疆烏魯木齊北京中路華聯大廈A-5C 郵編:830000
     
    亚洲伊人成综合人影院小说,亚洲永久无码浪潮,思思99re8这里有精品热视频
    <bdo id="xkgs2"><xmp id="xkgs2">

    <bdo id="xkgs2"><progress id="xkgs2"><bdo id="xkgs2"></bdo></progress></bdo>

    <nobr id="xkgs2"></nobr>

    <bdo id="xkgs2"></bdo>

    <menuitem id="xkgs2"><xmp id="xkgs2"><menuitem id="xkgs2"></menuitem>
    <menuitem id="xkgs2"><font id="xkgs2"><samp id="xkgs2"></samp></font></menuitem><menuitem id="xkgs2"><xmp id="xkgs2"><menuitem id="xkgs2"><xmp id="xkgs2">

    <bdo id="xkgs2"><xmp id="xkgs2">

    <menuitem id="xkgs2"><xmp id="xkgs2">

    <bdo id="xkgs2"></bdo>
    <menuitem id="xkgs2"><xmp id="xkgs2"><samp id="xkgs2"></samp>

    <b id="xkgs2"><ins id="xkgs2"><samp id="xkgs2"></samp></ins></b>