这个问题问得很好
早就怀疑csdn论坛左边的树没有用全部缓存到客户端,
导致每次打开都浪费资源。
应该改一下把打开过的树用behaver:userdata存起来,
不过一直也时间去实现相关的代码。<HTML>
<HEAD>
<STYLE>
.myTreeTopDivClass {behavior:url(#default#userdata);}
div{background-color:cccccc;margin-left:10px;}
</STYLE>
<SCRIPT>
function saveMyTree(){
var oPersist=myTreeTopDiv;
oPersist.setAttribute("sPersist",oPersist.innerHTML);
oPersist.save("lastHTML");
}
function loadMyTree(){
var oPersist=myTreeTopDiv;
oPersist.load("lastHTML");
if(oPersist.getAttribute("sPersist")!=null){
oPersist.innerHTML=oPersist.getAttribute("sPersist");
}
}function addSubTree(obj)
{
obj.insertAdjacentHTML("beforeEnd",'<div class="myTreeTopDivClass" onclick="addSubTree(this);"> 菜单</div>');
event.cancelBubble=true;
} window.onload = loadMyTree;
window.onbeforeunload = saveMyTree;
</SCRIPT>
</HEAD>
<BODY >
<div class="myTreeTopDivClass" id=myTreeTopDiv onclick="addSubTree(this);"> 菜单
</div>
</BODY>
</HTML>
早就怀疑csdn论坛左边的树没有用全部缓存到客户端,
导致每次打开都浪费资源。
应该改一下把打开过的树用behaver:userdata存起来,
不过一直也时间去实现相关的代码。<HTML>
<HEAD>
<STYLE>
.myTreeTopDivClass {behavior:url(#default#userdata);}
div{background-color:cccccc;margin-left:10px;}
</STYLE>
<SCRIPT>
function saveMyTree(){
var oPersist=myTreeTopDiv;
oPersist.setAttribute("sPersist",oPersist.innerHTML);
oPersist.save("lastHTML");
}
function loadMyTree(){
var oPersist=myTreeTopDiv;
oPersist.load("lastHTML");
if(oPersist.getAttribute("sPersist")!=null){
oPersist.innerHTML=oPersist.getAttribute("sPersist");
}
}function addSubTree(obj)
{
obj.insertAdjacentHTML("beforeEnd",'<div class="myTreeTopDivClass" onclick="addSubTree(this);"> 菜单</div>');
event.cancelBubble=true;
} window.onload = loadMyTree;
window.onbeforeunload = saveMyTree;
</SCRIPT>
</HEAD>
<BODY >
<div class="myTreeTopDivClass" id=myTreeTopDiv onclick="addSubTree(this);"> 菜单
</div>
</BODY>
</HTML>
生成树的时候根据这个变量的值显示或隐藏某个分支
这个变量可以保存在cookie或session中