动态载入树 (ASP+数据库)

ASP+ACCESS 在数据量达100万条记录下,载入速度仍然惊人....

// 网上转载. 忘了作者...  : )

//**********************  Index.asp ************************//

  1None.gif<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
  2None.gif<%Option Explicit%>
  3None.gif<html>
  4None.gif<head>
  5None.gif<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
  6None.gif<title>tree</title>
  7None.gif<link href="css/style.css" rel="stylesheet" type="text/css">
  8None.gif<script language="JavaScript">
  9None.gif<!--
 10None.gifvar d1,d2;
 11None.gif
 12None.giffunction expand(id)
 13None.gif{
 14None.gif var d=new Date();
 15None.gif d1=d.valueOf();
 16None.gif
 17None.gif var s_id = eval("s" + id);
 18None.gif var dir_id = eval("dir" + id);
 19None.gif if(s_id.href != '')
 20None.gif {
 21None.gif  //window.open(s_id.href);
 22None.gif  //or
 23None.gif  //top.frames['FrameName'].location.href = s_id.href;
 24None.gif }
 25None.gif
 26None.gif switch(dir_id.open)
 27None.gif {
 28None.gif  //改变"+","-"
 29None.gif  case "true":
 30None.gif  {
 31None.gif   with(dir_id)
 32None.gif   {
 33None.gif    innerText = "+";
 34None.gif    open = "false";
 35None.gif    className = 'dirclose';
 36None.gif   }
 37None.gif   if(document.getElementById("t" + id))
 38None.gif   {
 39None.gif    eval("t"+id).style.display = 'none';
 40None.gif    document.getElementById("load_" + id).style.display = 'none';
 41None.gif    return;
 42None.gif   }
 43None.gif   else
 44None.gif   {
 45None.gif    document.getElementById("load_" + id).style.display = 'none';
 46None.gif   }
 47None.gif   break;
 48None.gif  }
 49None.gif  case "false":
 50None.gif  {
 51None.gif   with(dir_id)
 52None.gif   {
 53None.gif    innerText = "-";
 54None.gif    open = "true";
 55None.gif    className = 'diropen';
 56None.gif   }
 57None.gif   
 58None.gif   document.getElementById("load_" + id).style.display = '';
 59None.gif   
 60None.gif   if(document.getElementById("t" + id))
 61None.gif   {
 62None.gif    eval("t" + id).style.display = '';
 63None.gif    eval("load_" + id).style.display = 'none';
 64None.gif    return;
 65None.gif   }
 66None.gif      else 
 67None.gif   {
 68None.gif    document.frames['hifm'].location.replace("subtree.asp?id=" + id);
 69None.gif   }
 70None.gif      break;
 71None.gif  }
 72None.gif  default:dir_id.innerText = "."; dir_id.className = 'dirNode'; return;
 73None.gif }
 74None.gif
 75None.gif}
 76None.gif
 77None.giffunction ArrToHtml(ArrNode,nodeid)
 78None.gif{
 79None.gif //输出到页面
 80None.gif var node_html = '<table id="t' + nodeid + '" width="100%" border="0" style="position: relative; left: 18px;" cellspacing="0" cellpadding="0">';
 81None.gif
 82None.gif var str,opened,cls
 83None.gif for (var i = 0; i < ArrNode.length; i++)
 84None.gif {
 85None.gif  if (ArrNode[i].iChildren == 0)
 86None.gif  {
 87None.gif   str = '.';
 88None.gif   opened = 'no';
 89None.gif   cls = 'dirNode';
 90None.gif  }
 91None.gif  else
 92None.gif  {
 93None.gif   str = '+';
 94None.gif   opened = 'false';
 95None.gif   cls = 'dirclose';
 96None.gif  }
 97None.gif
 98None.gif  node_html += '<tr><td id="node' + ArrNode[i].id + '" class="td_node" valign="top"><span class="' + cls + '" id="dir' + ArrNode[i].id + '" οnclick="expand(' + ArrNode[i].id + ')" open="' + opened + '">' + str + '</span><span class="node" id="s' + ArrNode[i].id + '" οnclick="expand(' + ArrNode[i].id + ')" title="' + ArrNode[i].Content + '" href="' + ArrNode[i].strLink + '">' + ArrNode[i].Content + '</span></td></tr>';
 99None.gif
100None.gif  if (ArrNode[i].iChildren > 0)
101None.gif  {
102None.gif   node_html += '<tr id="load_' + ArrNode[i].id + '" style="display: none"><td class="td_node"><table border="0" cellspacing="0" cellpadding="0" style="position: relative; left: 18; top: 0px"><tr><td class="td_node"><span class="dirNode">.</span><span class="load">Loadingdot.gif</span></td></tr></table></td></tr>';
103None.gif  }
104None.gif }
105None.gif
106None.gif node_html += '</table>';
107None.gif if (document.getElementById("load_" + nodeid))
108None.gif {
109None.gif  document.getElementById("load_" + nodeid).style.display = "none";
110None.gif  document.getElementById("node" + nodeid).innerHTML += node_html;
111None.gif  var d=new Date();
112None.gif  d2=d.valueOf();
113None.gif  message.innerHTML = "耗时:"+(d2-d1)+"ms";
114None.gif }
115None.gif}
116None.gif-->
117None.gif</script>
118None.gif</head>
119None.gif
120None.gif<body topmargin="0" leftmargin="0" scroll="yes">
121None.gif<%
122None.gifDim conn,rs
123None.gifDim s,open,cls
124None.gifOn Error Resume Next
125None.gifSet conn = Server.CreateObject("ADODB.Connection")
126None.gifconn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.mappath("Tree.mdb"& ";Persist Security Info=False"
127None.gifSet rs = Server.CreateObject("ADODB.Recordset")
128None.gif
129None.gifrs.Open "select *,(select count(*) from deeptree where parentid = T.id) as children from deeptree T where parentid=0 order by parentid",conn,1,3
130None.gif%>
131None.gif<div id="message" style="height: 20px" align="center">   </div>
132None.gif<div align="center">
133None.gif  <center>
134None.gif    <table border="0" width="100%" cellspacing="0" cellpadding="0" height="100%" bgcolor="#F2F2F2">
135None.gif      <tr>
136None.gif        <td width="260" valign="top" align="left">
137None.gif          <div id="treedir" style="overflow: auto; width: 30%; height: 100%;">
138None.gif         <table border="0" cellspacing="0" cellpadding="0" style="position: relative; left: 18px; top: 20px;" width="100%">
139None.gif   <%
140None.gif   Do While Not rs.EOF
141None.gif    If rs("children"= 0 Then
142None.gif     s = "."
143None.gif     open = "no"
144None.gif     cls = "dirNode"
145None.gif    Else 
146None.gif     s = "+"
147None.gif     open = "false"
148None.gif     cls = "dirclose"
149None.gif    End If
150None.gif   %>
151None.gif         <tr>
152None.gif     <td id="node<% = rs("id")%>" class="td_node" valign="top"><span class="<% = cls %>" id="dir<% = rs("id") %>" onclick="expand(<%=rs("id")%>)" open="<% = open %>"><= s %></span><span class="node" id="s<% = rs("id") %>" onclick="expand(<% = rs("id") %>)"  title="<% = Trim(rs("content")) %>" href="<% = Trim(rs("link")) %>"><= rs("content") %></span>
153None.gif     </td>
154None.gif   </tr>
155None.gif   <If rs("children"> 0 Then%>
156None.gif         <tr id="load_<% = rs("id") %>" style="display: none">
157None.gif           <td class="td_node">
158None.gif             <table border="0" cellspacing="0" cellpadding="0" style="position:relative;left:18;top:0" width="100%">
159None.gif            <tr>
160None.gif              <td class="td_node"><span class="dirNode">.</span><span class="load">Loadingdot.gif</span>
161None.gif                    </td>
162None.gif                  </tr>
163None.gif                </table>
164None.gif              </td>
165None.gif            </tr>
166None.gif   <%End If%>
167None.gif   <%
168None.gif    rs.MoveNext
169None.gif   Loop
170None.gif   %>
171None.gif          </table>
172None.gif        </div>
173None.gif      </td>
174None.gif    </table>
175None.gif  </center>
176None.gif</div>
177None.gif<%
178None.gifSet rs = Nothing
179None.gifSet conn = Nothing
180None.gif%>
181None.gif<iframe id='hifm' width=0 height=0 style="display: none" height="100%" width="100%"></iframe>
182None.gif</body>
183None.gif</html>

///****************** SubTree.asp *********************//

 1None.gif<%Option Explicit%>
 2None.gif<script language="JavaScript">
 3None.giffunction NodeClass(id,Content,strLink,iChildren)
 4None.gif{
 5None.gif //this.id=parseInt(id);
 6None.gif this.id=id;
 7None.gif    this.Content=Content;
 8None.gif this.strLink=strLink;
 9None.gif this.iChildren=iChildren;
10None.gif    //this.iChildren=parseInt(iChildren);
11None.gif}
12None.gif
13None.gifvar ArrNode = new Array();
14None.gif<%
15None.gifDim conn,rs,s,cls,href,Open
16None.gifDim nodeid,i
17None.gifnodeid = Request.QueryString("id")
18None.gif'On Error Resume Next
19None.gifSet conn = Server.CreateObject("ADODB.Connection")
20None.gifconn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.mappath("tree.mdb"& ";Persist Security Info=False"
21None.gifSet rs = Server.CreateObject("ADODB.Recordset")
22None.gifrs.Open "select *,(select count(*) from deeptree where parentid = T.id) as children from deeptree T where parentid=" & nodeid & "",conn,1,3
23None.gifi=0
24None.gifDo While Not rs.EOF
25None.gif %>
26None.gif ArrNode[<%=i%>= new NodeClass(<%=rs("id")%>,'<%=trim(rs("content"))%>','<%=trim(rs("link"))%>',<%=rs("children")%>);
27None.gif <%
28None.gif
29None.gif i=i+1
30None.gif rs.MoveNext
31None.gifLoop
32None.gif
33None.gifSet rs = Nothing
34None.gif%>
35None.gifparent.ArrToHtml(ArrNode,'<% = nodeid %>');
36None.gif-->
37None.gif</script>
38None.gif<%
39None.gifSet conn = Nothing
40None.gif%>

//********************* Node.htc *********************//

 1None.gif<PUBLIC:COMPONENT>
 2None.gif<PUBLIC:ATTACH EVENT="onmouseover" ONEVENT="fos()"/>
 3None.gif<PUBLIC:ATTACH EVENT="onmouseout" ONEVENT="blu()"/>
 4None.gif<PUBLIC:ATTACH EVENT="onselectstart" ONEVENT="st()"/>
 5None.gif<SCRIPT>
 6ExpandedBlockStart.gifContractedBlock.giffunction fos(){dot.gif}{
 7InBlock.gifif(style.backgroundColor!='#ffffff'){
 8InBlock.gifstyle.color="#000000"
 9InBlock.gifstyle.border="1 solid #888888"
10InBlock.gifstyle.backgroundColor='#DDDDDD'
11ExpandedBlockEnd.gif}

12None.gifelse
13ExpandedBlockStart.gifContractedBlock.gif{dot.gif}{style.color="#000000"
14InBlock.gifstyle.border="1 solid #999999"
15InBlock.gifstyle.backgroundColor='#ffffff'
16ExpandedBlockEnd.gif}

17None.gif}
18None.gif
19ExpandedBlockStart.gifContractedBlock.giffunction blu(){dot.gif}{
20InBlock.gifif(style.backgroundColor!='#ffffff'){
21InBlock.gifstyle.color="#000000"
22InBlock.gifstyle.border="1 solid #f2f2f2"
23InBlock.gifstyle.backgroundColor='#f2f2f2'
24ExpandedBlockEnd.gif}

25None.gifelse
26ExpandedBlockStart.gifContractedBlock.gif{dot.gif}{style.color="#000000"
27InBlock.gifstyle.border="1 solid #999999"
28InBlock.gifstyle.backgroundColor='#ffffff'
29ExpandedBlockEnd.gif}

30None.gif}
31None.gif
32ExpandedBlockStart.gifContractedBlock.giffunction st(){dot.gif}{
33InBlock.gifreturn false;
34ExpandedBlockEnd.gif}

35None.gif</SCRIPT>
36None.gif</PUBLIC:COMPONENT>

//***************************  Style.css ****************//

 1ExpandedBlockStart.gifContractedBlock.gifbody{dot.gif}{font-size:12px}
 2ExpandedBlockStart.gifContractedBlock.gif#txt{dot.gif}{font-size: 12px; color: #000000;  font-family: Courier New;border:1 solid #3366cc}
 3ExpandedBlockStart.gifContractedBlock.gif#hrf{dot.gif}{font-size: 12px; color: #000000;  font-family: Courier New;border:1 solid #3366cc}
 4ExpandedBlockStart.gifContractedBlock.gif#sb{dot.gif}{font-size: 12px; color: #000000;  font-family: Courier New;background-color:#d2e8ff;border:1 solid #3366cc;cursor:hand}
 5ExpandedBlockStart.gifContractedBlock.gif.node{dot.gif}{position:relative;left:2;height:20;padding:3 3 1 3;font-size:12px;font-family: Courier New;cursor:hand;border:1 solid #f2f2f2;behavior:url(css/node.htc)}
 6ExpandedBlockStart.gifContractedBlock.gif.load{dot.gif}{position:relative;left:2;height:20;padding:1 3 1 3;font-size:12px;font-family: Courier New;cursor:hand;border:1 solid #999999;background-color:#f2f2f2;color:#999999}
 7ExpandedBlockStart.gifContractedBlock.gif.td_node{dot.gif}{height:22px}
 8ExpandedBlockStart.gifContractedBlock.gif#treedir{dot.gif}{
 9ExpandedBlockEnd.gif}

10None.gifspan.diropen
11ExpandedBlockStart.gifContractedBlock.gif{dot.gif}{ padding-left:2px;
12InBlock.gif overflow:hidden;
13InBlock.gif line-height:3px;
14InBlock.gif font-size:12px;
15InBlock.gif padding-top:5px;
16InBlock.gif width:11px;
17InBlock.gif height:11px;
18InBlock.gif border:solid 1px black;
19InBlock.gif background-color:#ffffff;
20InBlock.gif cursor:hand;
21ExpandedBlockEnd.gif}

22None.gifspan.dirclose
23ExpandedBlockStart.gifContractedBlock.gif{dot.gif}{
24InBlock.gif line-height:6px;
25InBlock.gif font-size:9px;
26InBlock.gif overflow:hidden;
27InBlock.gif padding:2px;
28InBlock.gif width:11px;
29InBlock.gif height:11px;
30InBlock.gif border:solid 1px black;
31InBlock.gif background-color:#ffffff;
32InBlock.gif cursor:hand;
33ExpandedBlockEnd.gif}

34None.gif.dirNode
35ExpandedBlockStart.gifContractedBlock.gif{dot.gif}{
36InBlock.gif font-weight:bold
37InBlock.gif overflow:visible;
38InBlock.gif font-size:9px;
39InBlock.gif line-height:3px;
40InBlock.gif padding: 1px 1px 0px 3px;
41InBlock.gif width:11px;
42InBlock.gif height:11px;
43InBlock.gif border:solid 1px black;
44InBlock.gif background-color:#ffffff;
45InBlock.gif cursor:hand;
46ExpandedBlockEnd.gif}

// 把 Node.htc, Style.css 保存在 CSS 目录下. Index.asp,SubTree.asp 放与根目录.
另新建一ACCESS数据库 Tree.mdb
表DeepTree 结构为 ID(自动编号),Content(文本), ParentID(数字),Link(文本)

转载于:https://www.cnblogs.com/Dicky/archive/2005/05/12/154062.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/461640.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ADC——S5PV210的ADC的理论与操作

以下内容源于朱有鹏嵌入式课程的学习与整理&#xff0c;如有侵权请告知删除。 参考博客 s5pv210 AD转换 - biaohc - 博客园 一、ADC的相关概念 1、量程&#xff08;模拟量的输入范围&#xff09; ADC只能输入电压信号&#xff0c;其他种类的模拟信号要经过传感器的转换&#x…

【洛谷 2661】信息传递

题目描述 有 nn 个同学&#xff08;编号为 11 到 nn &#xff09;正在玩一个信息传递的游戏。在游戏里每人都有一个固定的信息传递对象&#xff0c;其中&#xff0c;编号为 ii 的同学的信息传递对象是编号为 T_iTi​ 的同学。 游戏开始时&#xff0c;每人都只知道自己的生日。之…

kernel移植——从三星官方内核开始移植

以下内容源于朱有鹏嵌入式课程的学习&#xff0c;如有侵权&#xff0c;请告知删除。 一、内核移植初体验 1、获取三星官方的内核源码包 三星SMDKV210开发板附带的光盘里有内核源码包&#xff1a;下载地址。 2、构建移植环境 &#xff08;1&#xff09;Windows下建立SI工程&…

Android中实时视频传输(摄像头实时视频传输)解决方案二

为什么80%的码农都做不了架构师&#xff1f;>>> 1、使用FFMpeg进行视频采集&#xff0c;使用Live555进行RTP传输&#xff0c;使用VideoView进行播放。 csdn提到&#xff1a;重载FrameSource&#xff0c;写一个服务类&#xff0c;可以从FrameSource的派生类读取帧数…

定时器——S5PV210定时器的理论与操作

以下内容源于朱有鹏嵌入式课程的学习与整理&#xff0c;如有侵权请告知删除。 一、定时器简介 1、定时器的含义 定时器作为SoC的外设&#xff0c;主要用来实现定时执行代码的功能&#xff0c;它相对SoC而言&#xff0c;就像闹钟相对于人的意义一样。定时器内部的计数器每隔一个…

uboot的移植——DM9000移植的理论基础

以下内容源于朱有鹏嵌入式课程的学习&#xff0c;如有侵权请告知删除。 一、网卡相关的基本知识 1、DM9000网卡芯片和SoC的连接 如上图所示&#xff0c;DM9000网卡芯片是通过SROM总线接口&#xff0c;或者说SROM控制器接入SoC的。下面分别介绍SROM控制器、DM9000网卡芯片的相关…

javascript深入浅出

第一章 数据类型 1&#xff0c;六种数据类型&#xff1a;原始类型&#xff08;number&#xff0c;string&#xff0c;boolean&#xff0c;null&#xff0c;undefined&#xff09; object对象&#xff08;Function Array Date&#xff09; 2&#xff0c;隐式转换&#xff1a;Na…

网络通信基础常识

以下内容源于朱有鹏嵌入式课程的学习与整理&#xff0c;如有侵权请告知删除。 1、网络通信属于进程间通信 进程间通信的一种方法是使用套接字socket&#xff0c;网络通信其实就是位于网络中不同主机上面的2个进程之间的通信。 2、网络通信的层次 网络通信的层次&#xff0c;即…

Android NDK工程创建与编译运行

首发地址&#xff1a;http://www.eoeandroid.com/thread-201993-1-1.html一、 工程创建1. 创建一个Android工程配置好开发环境并加载好对应版本sdk后&#xff0c;选择菜单File->New-> Project创建工程&#xff0c;工程类型选择Android Project&#xff0c;如下图所示&…

[Quatsch]Quantum Or Optics

小生预言&#xff0c;鉴于目前CG产业中学术界与生产界之间的差异&#xff0c;未来必将有一门独立的学科&#xff0c;专门用于研究自然界的材质特性与表现&#xff0c;从此艺术界与学术界将呈现完美之统一&#xff0c;应该先在MIT或者Cornell出现。本人姑且将这门学科命名为“应…

C#事件 的讲解

一、事件的本质事件是软件系统里的两个子系统之间&#xff0c;或者两个模块之间&#xff0c;或者两个对象之间发送消息&#xff0c;并处理消息的过程。在面向对象的世界里&#xff0c;就可以统一认为是两个对象之间的行为。两个对象之间发送的这种消息&#xff0c;对发送方来讲…

phpMyAdmin密码设置

2019独角兽企业重金招聘Python工程师标准>>> 在使用phpMyAdmin操作数据库时&#xff0c;首先需要设置mysql的root用户的密码。具体操作参考前一篇博文。设置完mysql的root密码之后&#xff0c;需要对phpMyAdmin的登录进行一些配置。 未经配置的phpMyAdmin很不安全&a…

抽取网络信息进行数据挖掘 建立语料库

最近的实习项目需要做一个大数据库&#xff08;语料库&#xff09;&#xff0c;采集博客、微博、问答库的信息。将数据库的内容进行训练&#xff0c;最后应该是做成一个类似中文siri的模型吧。 第一步新闻抓取器已经稳定运行了&#xff0c;基本原理用的是爬虫去爬新闻门户网站的…

四旋翼无人机调研结果

P.S&#xff1a;作者曾在大学某次小班课上看到该视频&#xff0c;深深被震撼了&#xff0c;因此对无人机念念不忘。 恰逢某课程要求讲解自己喜欢的领域的内容&#xff0c;因此对四旋翼无人机进行了调研。

选购四轴飞行器的部件

内容截于&#xff1a;http://www.loveuav.com/article-191-1.html

重复编辑命令行

为什么80%的码农都做不了架构师&#xff1f;>>> 要想重复前面已经输入的命令&#xff0c;请按向上方向键。每按这个键一次&#xff0c;shell都会显示前一个命令行。要想重新执行所显示的命令行&#xff0c;请按回车键。按向下方向键&#xff0c;则可以沿着相反的方…

hadoop2.2.0 分布式存储hdfs完全分布式搭建及功能测试记录(一)----架构及原理介绍...

0.文档说明&#xff1a;本文是围绕hadoop2.2的分布式文件系统hdfs进行分布式存储功能测试&#xff0c;形成的hdfs分布式存储功能测试报告&#xff0c;其中主要包括三大部分内容&#xff1a;第一部分介绍了hdfs的基本原理&#xff1b;第二部分介绍了hadoop2.2的完全分布式集群安…

宏定义函数container_of的解释

从kernel里面抠出的一些与宏container_of有关的代码&#xff0c;如下&#xff1a; 1、此宏作用是从结构体的某元素&#xff08;member&#xff09;出发&#xff0c;得到结构体的首地址&#xff1b; 2、container_of的参数解释 &#xff08;1&#xff09;type&#xff1a;指的是…

【ASP.NET Web API教程】2.3 与实体框架一起使用Web API

2.3 Using Web API with Entity Framework 2.3 与实体框架一起使用Web API 本小节是ASP.NET Web API第2章的第3小节&#xff0c;原文共分为7个部分&#xff0c;分成了7篇文章&#xff0c;故这里也分为7个帖子贴出&#xff0c;以下是本小节的第1部分 — 译者注。 Part 1: Overvi…

ITTC数据挖掘平台介绍(综述)——平台简介

数据挖掘方兴未艾&#xff0c;大量新事物层出不穷。本系列将介绍我们自主设计的数据挖掘软件平台。与大家共同分享对知识&#xff0c;微博&#xff0c;人际等复杂网络的分析&#xff0c;以及对自然语言处理的见解。 一、我们需要怎样的数据挖掘系统 一直以来&#xff0c;以高校…