以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 SVG/GML/VRML/X3D/XAML 』  (http://bbs.xml.org.cn/list.asp?boardid=21)
----  用户端JAVASCRIPT动态操作svg的试验及众多疑问,烦请不吝赐教  (http://bbs.xml.org.cn/dispbbs.asp?boardid=21&rootid=&id=52881)


--  作者:我的牛会唱歌
--  发布时间:9/19/2007 9:19:00 PM

--  用户端JAVASCRIPT动态操作svg的试验及众多疑问,烦请不吝赐教
我的想法是:用户从服务器提取相关数据,然后生成SVG图。因为数据量较大,把用于操作的脚本放在用户端HTML代码中执行,同时因为不想访问用户端文件(出于用户安全顾虑),SVG文件要放在服务器端。疑问1:这样能不能达到减轻服务器端压力的目的?疑问2:对于一个有5000个图形元素的SVG文件来说,处理速度等方面用户能否承受?是不是这种组合应用只适用于简单的图形?疑问3:这样很多用户都在访问同一个SVG文件,会有什么问题么?疑问4:有没有更好的思路?
这是我试验的实例,点击后在SVG视图中成功添加了一行文字:
<html>
<head>
<meta http-equiv="Content-Language" content="zh-cn">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>test</title>
<script language=javascript >
function showmsg()
{
alert("test ok!");
var svgdoc=id1.getSVGDocument();
var text=svgdoc.createElement("text");
text.setAttribute("y",10);
text.setAttribute("fill","red")
text.appendChild(svgdoc.createTextNode("test ok!!!"));
svgdoc.rootElement.appendChild(text);
}
</script>
</head>
<body>
<embed name="id1" src="test.svg" height="500" width="500"></embed>
</body>
</html>

test.svg:
<svg width="100%" height="100%"
     xmlns="http://www.w3.org/2000/svg"
     xmlns:xlink="http://www.w3.org/1999/xlink">
  <g transform="translate(50,100)">
     <rect onclick="showmsg()" fill="red"
           x="0" y="0" width="200" height="100"/>
  </g>
</svg>

我是新手,要是问题很可笑您就笑笑,开心最好


--  作者:junki
--  发布时间:5/4/2008 12:03:00 AM

--  
你是想动态生成svg文件吗?
1. 当然可以减轻服务器的负担;
2. 对于有大量图形的svg文件,可以考虑用模板来做,不要全部自动生成;
3. 没有问题,如访问html,jsp一样;
4. 要看你的具体应用了,如果像图形结构改动较少,建议可以使用模板或者xsl来实现。
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
31.250ms