脚本动态生成VML

2022-04-15 0 1,095

我们编写 VML 很重要的就是要和 数据库结合,如果和数据库结合了,读数据和把数据转换成 VML 变成了两部分。如果直接使用 ASP 生成 包含很多 VML 的页面,一旦数据量多了,整个页面就变得很庞大,下载速度慢了,IE解释代码的速度也慢了,所以用脚本动态生成 VML 变得非常重要了。

    用 VML 画一个示意图,可以更明确上面的意义:

    前面的图文简单的说就是:使用一个 Iframe 做后台,前台用脚本生成。也许担心,后台已经完成了,但前台还没有初始化的情况,你可以放心,因为读数据的过程肯定相对要慢,如果担心数据量少,只要你把
脚本放在 Body 前面,Iframe 放在 Body 的最后面,就不会产生同步错误的问题了。

    现在来具体讲讲如何用脚本动态产生 VML 。其实这和用脚本动态产生 HTML 是一样的过程。

<html xmlns:v=”urn:schemas-microsoft-com:vml”>
<head>
  <title>动态创建VML</title>
</head>
<STYLE>
 v\:* { BEHAVIOR: url(#default#VML) }
</STYLE>
<script language=”JavaScript”>
function createPoint(x,y,v)
{
var strElement=”<v:rect title=’“+v+”‘ style=’top:“+x+”;left:“+y+”width:100;height:100′></v:rect>“;
var newPoint = document.createElement(strElemnt);
group1.insertBefore(newPoint);
}
</script>
<body>
<v:group ID=”group1″ style=”WIDTH:200px;HEIGHT:200px;” coordsize = “200,200”>
</v:group>
<iframe src=”readData.asp” name=”data” style=”display:none”></iframe>
</body>
</html>

相应的在 readData.asp 里面:

<script>
<%
数据库连接部分
读数据部分
Do Until rs.EOF
%>

  parent.createPoint(<%=x%>,<%=y%>,<%=value%>);
<%
Loop
数据库关闭部分
%>

</script>

上面的颜色采用 HomeSite 4.5.2风格

    看完上面的,是否对这种模式有所理解呢?下面谈谈动态生成 VML 所要注意的一些问题,先说说 document 的 createElement 方法。IE版本不同, createElement 的使用也有所区别,在早期版本的IE, createElement 只能创建 Select 里面 OPTION ,比如说 var newOption=document.createElement(“OPTION”); 但在 IE5.0 以后,createElement 可以创建所有的对象,使用的方式是 var newElement=document.createElement(“<div id=’oDIV’></div>”); 注意到没有,这里的参数必须是个完成的 HTML 标记,而不是 DIV,用这个方法的好处就是,可以用一个语句把新创建的对象描述清楚。insertBefore 方法很好用,它把新创建的对象插入到 最后。

    我们一开始就有了 Group1 ,所有以后动态生成的 VML 直接插入到 Group1 的后面就可以了。曾经做了三个实验,第一个是普通的,用ASP生成 VML 代码;第二个是不用Iframe,在同一个页面生成脚本;第三个就是上面的例子,使用Iframe 产生脚本。结果在大数据量的条件下,效率最高的是第三个,其次是第二个,第一个有明显的慢的感觉。

    接下来的一节,将讲述VML最激动人心的功能,放大缩小!

免责声明:
1、本网站所有发布的源码、软件和资料均为收集各大资源网站整理而来;仅限用于学习和研究目的,您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。 不得使用于非法商业用途,不得违反国家法律。否则后果自负!

2、本站信息来自网络,版权争议与本站无关。一切关于该资源商业行为与www.niceym.com无关。
如果您喜欢该程序,请支持正版源码、软件,购买注册,得到更好的正版服务。
如有侵犯你版权的,请邮件与我们联系处理(邮箱:skknet@qq.com),本站将立即改正。

NICE源码网 CSS/HTML 脚本动态生成VML https://www.niceym.com/14430.html

脚本动态生成VML
下一篇: 放大缩小VML