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

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

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

1None.gif<%@LANGUAGE="VBSCRIPT"CODEPAGE="936"%> 2None.gif<%OptionExplicit%> 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.gif12None.giffunctionexpand(id) 13None.gif{ 14None.gif var d=newDate(); 15None.gif d1=d.valueOf(); 16None.gif17None.gif var s_id=eval("s"+id); 18None.gif var dir_id=eval("dir"+id); 19None.gifif(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.gif26None.gif switch(dir_id.open) 27None.gif { 28None.gif//改变"+","-" 29None.gifcase"true": 30None.gif  { 31None.gifwith(dir_id) 32None.gif   { 33None.gif    innerText="+"; 34None.gif    open="false"; 35None.gif    className='dirclose'; 36None.gif} 37None.gifif(document.getElementById("t"+id)) 38None.gif   { 39None.gifeval("t"+id).style.display='none'; 40None.gifdocument.getElementById("load_"+id).style.display='none'; 41None.gifreturn; 42None.gif   } 43None.gifelse 44None.gif   { 45None.gif    document.getElementById("load_"+id).style.display='none'; 46None.gif} 47None.gif   break; 48None.gif  } 49None.gifcase"false": 50None.gif  { 51None.gifwith(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.gifif(document.getElementById("t"+id)) 61None.gif   { 62None.gifeval("t"+id).style.display=''; 63None.gifeval("load_"+id).style.display='none'; 64None.gifreturn; 65None.gif   } 66None.gifelse 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.gif75None.gif} 76None.gif77None.giffunctionArrToHtml(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.giffor(var i=0; i<ArrNode.length; i++) 84None.gif { 85None.gifif(ArrNode[i].iChildren==0) 86None.gif  { 87None.gif   str='.'; 88None.gifopened='no'; 89None.gifcls='dirNode'; 90None.gif} 91None.gifelse 92None.gif  { 93None.gif   str='+'; 94None.gifopened='false'; 95None.gifcls='dirclose'; 96None.gif} 97None.gif98None.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.gifif(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.gif106None.gif node_html+='</table>'; 107None.gifif(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=newDate(); 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.gif120None.gif<body topmargin="0"leftmargin="0"scroll="yes"> 121None.gif<% 122None.gifDimconn,rs 123None.gifDims,open,cls 124None.gifOnErrorResumeNext 125None.gifSetconn=Server.CreateObject("ADODB.Connection") 126None.gifconn.Open"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.mappath("Tree.mdb")&";Persist Security Info=False" 127None.gifSetrs=Server.CreateObject("ADODB.Recordset") 128None.gif129None.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.gifDoWhileNotrs.EOF 141None.gifIfrs("children")=0Then 142None.gif     s="." 143None.gifopen="no" 144None.gifcls="dirNode" 145None.gifElse 146None.gif     s="+" 147None.gifopen="false" 148None.gifcls="dirclose" 149None.gifEndIf 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<%Ifrs("children")>0Then%> 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<%EndIf%> 167None.gif<% 168None.gif    rs.MoveNext 169None.gifLoop 170None.gif   %> 171None.gif</table> 172None.gif</div> 173None.gif</td> 174None.gif</table> 175None.gif</center> 176None.gif</div> 177None.gif<% 178None.gifSetrs=Nothing 179None.gifSetconn=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<%OptionExplicit%> 2None.gif<script language="JavaScript"> 3None.giffunctionNodeClass(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.gif13None.gifvar ArrNode=newArray(); 14None.gif<% 15None.gifDimconn,rs,s,cls,href,Open 16None.gifDimnodeid,i 17None.gifnodeid=Request.QueryString("id") 18None.gif'On Error Resume Next 19None.gifSetconn=Server.CreateObject("ADODB.Connection") 20None.gifconn.Open"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.mappath("tree.mdb")&";Persist Security Info=False" 21None.gifSetrs=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.gifDoWhileNotrs.EOF 25None.gif %> 26None.gif ArrNode[<%=i%>]=newNodeClass(<%=rs("id")%>,'<%=trim(rs("content"))%>','<%=trim(rs("link"))%>',<%=rs("children")%>); 27None.gif<% 28None.gif29None.gif i=i+1 30None.gif rs.MoveNext 31None.gifLoop 32None.gif33None.gifSetrs=Nothing 34None.gif%> 35None.gifparent.ArrToHtml(ArrNode,'<% = nodeid %>'); 36None.gif--> 37None.gif</script> 38None.gif<% 39None.gifSetconn=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.gif19ExpandedBlockStart.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.gif32ExpandedBlockStart.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

动态载入树 (ASP+数据库)相关推荐

  1. bootstrap treetable 树形网格,动态扩展,连数据库

    二话不说,先看看效果图: 1.先来看写死的: 展开前~~ 展开后~~ 怎么实现呢? 先new 一个jsp文件,导入几个包,编写html代码,编写js代码,一个文件搞定! 1 <%@ page l ...

  2. asp数据库操作大全 [网站网页]

    什么叫活动服务器组件(Active Server Compontents)?组件是基于Activex技术的代码片断,通过指定接口提供指定的一组服务,组件供给客户端(Clients)在运行时候请求的对象 ...

  3. LuoguP2617 Dynamic Rankings (动态主席树学习理解)

    题目地址 题目链接 题解 动态主席树的板子题.动态主席树其实和静态的有很大差别,虽然同样是n个根,但是节点并不能共用,每个根节点表示bit上的一段区间. 所以其实是个树套树的东西来着,外层是bit,内 ...

  4. 模板 - 树上问题(树的直径、动态查询树的直径、树的重心)

    整理的算法模板合集: ACM模板 目录 一.树的直径 树形DP 两次DFS / BFS(找到直径的两个端点) 二.动态修改树的边权并求每个时刻的直径(线段树) 三.树的重心 一.树的直径 树的直径满足 ...

  5. 深入浅出Android动态载入jar包技术

    在实际项目中.因为某些业务频繁变更而导致频繁升级client的弊病会造成较差的用户体验,而这也恰是Web App的优势,于是便衍生了一种思路.将核心的易于变更的业务封装在jar包里然后通过网络下载下来 ...

  6. AMD规范:简单而优雅的动态载入JavaScript代码

    本文翻译自http://www.sitepen.com/blog/2010/11/04/requirejsamd-module-forms/,并加入部分自己的解释. CommonJS 提出了一种用于同 ...

  7. ASP数据库插马小议

    <from:lake2> 随着技术的发展,ASP数据库插马也不是什么新鲜的东东了,相信阁下也玩过这个的吧.呵呵,那你有没有遇到过插入的asp代码被空格拆开的情况呢(即插入的每个字符之间都出 ...

  8. Python 动态载入模块

    lib文件夹下有test.py文件: test.py文件内容如下: class simple(object):def __init__(self):self.name='刚田武' 在'动态载入模块.p ...

  9. ligerui_ligerTree_005_动态增加“树”节点

    动态添加ligerTree节点:效果图: 源码地址:http://download.csdn.net/detail/poiuy1991719/8571255 <%@ page language= ...

最新文章

  1. 了解下SOAP Envelope 元素
  2. 数据库监视器(SQL Server Profilter)
  3. flask_requirements
  4. python ip动态代理_Python 爬虫设置动态代理
  5. Bioconda软件安装神器:多版本并存、环境复制、环境导出
  6. 【Maven】windows 拷贝项目到内网 全面飘红 终极解决
  7. stm32 vscode 编译_STM32开发之 VSCode+gcc环境编译
  8. 关于VSS上的项目源码管理的注意问题
  9. vue-cli2.9.6更新不了问题
  10. sci的figure怎么做_SCI论文中Figure图如何制作?
  11. Java音频格式转换,支持amr、aud、slk、silk转成mp3
  12. 生物信息学常用的在线网站及数据库汇总
  13. 投影坐标系、大地坐标系(地理坐标系)
  14. SPI读取NRF24L01
  15. Minecraft 1.16.5模组开发(三十一) 自定义建筑生成(structure) (新)
  16. 智慧指间丨生态环境网格化监管系统——编织生态环保“绿网”
  17. 【FPGA】8B/10B编码--转自wiki百科
  18. 计算机之父 匈牙利“唯一的天才” 冯·诺依曼
  19. 【Linux Centos6/7 Oracle11g 修改Oracle字符集为ZHS16GBK(附: 其它字符集查询命令)】
  20. SD卡数据恢复教程:3种工具一键恢复SD卡误删的照片

热门文章

  1. 关于java的关键字 transient
  2. Coursera机器学习笔记(一) - 监督学习vs无监督学习
  3. Laravel5.5之事件监听、任务调度、队列
  4. HTTP 协议知识点总结(一)
  5. jsp页面验证码(完整实例)
  6. node.js Websocket消息推送---GoEasy
  7. Macosx 安装 ionic 成功教程
  8. 局域网内连接MySQL
  9. Hive hang without response
  10. 不同技术团队的配合问题及DevOps