| 网站首页 | 资讯 | Hack | 漏洞 | 网管 | 编程 | 培训 | 品黑页 | 软件 | 论坛 | 动画 | 视频 | 经典 | 教学站 | 黑客点睛 | 
免费服务 我要发布 在线破解 黑客游戏 精华收集 免费空间 网络硬盘 独家报道 黑器点播 免费 FTP 交换资源
收费服务 黑客培训 光盘刻录 黑客书籍 视频下载 主力频道 空间域名 网站建设 特色服务 解决方案 我要投诉
您现在的位置: 华夏黑客同盟 >> 编程 >> jsp编程 >> 正文 用户登录 新用户注册
一个jsp绘图研究实例           ★★★ 【字体:
一个jsp绘图研究实例
作者:未知 文章来源:网络 点击数: 更新时间:2008-8-22

——点的实现与速度测试
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.测试成功。

未完待续

 

责任编辑:朱倩  联系方式  Email:朱倩
电话:51228163
  • 上一篇编程:

  • 下一篇编程: 没有了
  • (只显示最新5条。评论内容只代表网友观点,与本站立场无关!)
    姓 名:
    * 游客填写  ·注册用户
    主 页:
    评 分:
    1分 2分 3分 4分 5分
    评论内容:
    验证码: *
  • 请遵守《互联网电子公告服务管理规定》及中华人民共和国其他各项有关法律法规。
  • 严禁发表危害国家安全、损害国家利益、破坏民族团结、破坏国家宗教政策、破坏社会稳定、侮辱、诽谤、教唆、淫秽等内容的评论 。
  • 用户需对自己在使用本站服务过程中的行为承担法律责任(直接或间接导致的)。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表网友个人观点,与本网站立场无关。
  • 最新hack更新
    最新推荐资讯
    相关编程
    公历农历互查的JavaScript
    一个暴jsp源码的网页
    一个暴jsp源码的网页
    公历农历互查的JavaScript
    java web开发基础-----JSP开发入
    Jsp中的session使用方法介绍
    用JSP处理Oracle中CLOB类型的字段
    一个jsp绘图研究实例
    一个最简单的MFC程序实例
    JSP初级教程之JSP指令
    最新会员软件
    最新推荐视频
    最新推荐动画

    Copyright @ 2005 77169.Net Inc. All rights reserved. 华夏黑客同盟 版权所有
    北京市电信通提供网络带宽

    mailto:webmaster@77169.net
    咨询QQ号:836982 / 59280880
    联系站长 QQ38588913
    热线电话: 86-10-67634029/676229433
    京ICP证041431号