页面大量的节点Dtree一次加载很慢,多次弹出提示框,需点击否多次,才加载完,怎么用ajax异步加载节点!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了页面大量的节点Dtree一次加载很慢,多次弹出提示框,需点击否多次,才加载完,怎么用ajax异步加载节点!相关的知识,希望对你有一定的参考价值。

参考技术A 我看官方文档,没有提到异步加载,估计不支持吧。

建议使用DhtmlX tree,文档:
http://docs.dhtmlx.com/tree__index.html
参考技术B 你可以判断他点击才弹出提示框啊追问

有没有代码,可以讲详细点吗?新手不懂,麻烦老师了。

参考技术C 要看你慢在哪里,是http的时候数据过大还是dom结构太多追问

就是dom节点太多了,怎么异步按需要加载节点(点击当前点加载当前节点,用dtree做的),后台返回的是一个集合数组,ajax怎么获取怎么处理。可以有代码吗?谢谢了。

追答

先存在内存里,不要去渲染,等全部搞定一次性渲染。

JS如何实现图片分段加载

我的一个页面有大量图片组成,大楷100张,我不想让浏览器一次性并发下载完,我想用JS实现:打开页面下载10张,暂停20秒,再下载10张,以此类推。这样可以吗,怎么实现呢?

意思应该是延迟加载,延迟加载主要是因为一次加载图片过多会导致网络请求过多,性能下降。所以才有延迟加载这一说。

主要思路:

    在HTML引入图片是,不要用src直接引入图片路径,

    定一个_src私有属性存储图片路径。

    当页面加载时,先加载可视区的图片,即将私有属性_src 修改为src。

下面是思路的代码实现:

<style>    
* margin:0px; padding:0px;    
ul width:996px; overflow:hidden; border:1px solid #ccc; margin:10px auto;    
li list-style:none; float:left; margin:10px; width:300px; border:1px solid yellow; height:200px;    
img width:100%; display:block; height:100%    
</style>    
<script>    
window.onload=function()    
var aImg = document.getElementsByTagName(\'img\');    
timeOut();    
window.onscroll = timeOut;    
function timeOut()    
    
var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;    
var clientHeight = document.documentElement.clientHeight;    
var top = scrollTop + clientHeight;    
    
for(var i=0;i<aImg.length;i++)    
    
var oImgTop = getPos(aImg[i]).top;    
if(top > oImgTop)    
    
aImg[i].src = aImg[i].getAttribute(\'_src\');    
    
    
    
function getPos(obj)    
    
var left = 0;    
var top = 0;    
while(obj)    
    
left += obj.offsetLeft;    
top += obj.offsetTop;    
obj = obj.offsetParent;    
    
return \'left\':left,\'top\':top;    
    
;    
</script>    
</head>    
<body>    
<ul>    
<li><img _src="img/b1.jpg" /></li>    
<li><img _src="img/b2.jpg" /></li>    
<li><img _src="img/b3.jpg" /></li>    
<li><img _src="img/b4.jpg" /></li>    
<li><img _src="img/b5.jpg" /></li>    
<li><img _src="img/b6.jpg" /></li>    
<li><img _src="img/b7.jpg" /></li>    
<li><img _src="img/b8.jpg" /></li>    
<li><img _src="img/b9.jpg" /></li>    
<li><img _src="img/b10.jpg" /></li>    
<li><img _src="img/b1.jpg" /></li>    
<li><img _src="img/b2.jpg" /></li>    
<li><img _src="img/b3.jpg" /></li>    
<li><img _src="img/b4.jpg" /></li>    
<li><img _src="img/b5.jpg" /></li>    
<li><img _src="img/b6.jpg" /></li>    
<li><img _src="img/b7.jpg" /></li>    
<li><img _src="img/b8.jpg" /></li>    
<li><img _src="img/b9.jpg" /></li>    
<li><img _src="img/b10.jpg" /></li>    
<li><img _src="img/b1.jpg" /></li>    
<li><img _src="img/b2.jpg" /></li>    
<li><img _src="img/b3.jpg" /></li>    
<li><img _src="img/b4.jpg" /></li>    
<li><img _src="img/b5.jpg" /></li>    
<li><img _src="img/b6.jpg" /></li>    
<li><img _src="img/b7.jpg" /></li>    
<li><img _src="img/b8.jpg" /></li>    
<li><img _src="img/b9.jpg" /></li>    
<li><img _src="img/b10.jpg" /></li>    
<li><img _src="img/b1.jpg" /></li>    
<li><img _src="img/b2.jpg" /></li>    
<li><img _src="img/b3.jpg" /></li>    
<li><img _src="img/b4.jpg" /></li>    
<li><img _src="img/b5.jpg" /></li>    
<li><img _src="img/b6.jpg" /></li>    
<li><img _src="img/b7.jpg" /></li>    
<li><img _src="img/b8.jpg" /></li>    
<li><img _src="img/b9.jpg" /></li>    
<li><img _src="img/b10.jpg" /></li>    
</ul>
参考技术A 你可以写一个函数,来判断当前显示到了哪个区域,然后显示本区域的图片.这个其实你都不用自己去做了,使用JSON自己就带有这样的功能,应用和更改起来都比较方便,相率也非常优秀。 参考技术B 这里有一个延迟加载效果 可以实现你的效果

参考资料:http://www.blueidea.com/common/shoutbox/redir.asp?3=i&id=11716

本回答被提问者采纳

以上是关于页面大量的节点Dtree一次加载很慢,多次弹出提示框,需点击否多次,才加载完,怎么用ajax异步加载节点!的主要内容,如果未能解决你的问题,请参考以下文章

dtree加载慢的问题

一个页面上有大量的图片,加载很慢,你有哪些方法优化这些图片的加载?

网页加载很慢JS或jquery堵塞,导致很久才弹出窗口

一个页面上有大量的图片(大型电商网站),加载很慢,你有哪些方法优化 这些图片的加载,给用户更好的体验

JS如何实现图片分段加载

Vue——每次弹出el-dialog,都会执行mounted