发布网友 发布时间:2022-04-22 05:39
共5个回答
懂视网 时间:2022-05-15 19:51
简单举例说明://html<p class="answer"></p>
描述:
功能:下滑加载更多,通过ajax请求到数据把组装好的html模板插入到list中。
实现:通过
$('.list').append('_html');
方法把一个html模板插入到.list中,但是,触发加载更多多次后发现append()方法执行越来越慢。
解决: 经排查,发现是要插入的_html模板中也存在.list类,所以,当多次插入后执行$('.list').append('_html');
时,$('.list')
的时间会越来越长。
热心网友 时间:2022-05-15 16:59
由于没有代码, 只能猜测.
你的唯一一句代码中 $(span) 的 span 是一个变量, 它应该指向 Dom中的某一个元素, 现在即使用$(span) 重新包装了一次, 但它还是指向同一个span,
因此无论你做N次循环,
你的代码 $("#mydiv").append($(span));
做的事情就是:
获取元素span, 插入到div Id为mydiv中;
再次获取元素span, 插入到div Id为mydiv中(span本来就处于div中, 页面无任何变化);
再次获取元素span, 插入到div Id为mydiv中(span本来就处于div中, 页面无任何变化);
...
...
热心网友 时间:2022-05-15 18:17
// 可以使用闭包,或者外部方法的方式。
// 1)使用外部方法,可以把你的 $("#mydiv").append(); 提取出来如下
// 然后在循环添加的时候,使用 AddSpan($(span));
function AddSpan(myspan){
$("#mydiv").append($(myspan));
}
// 2)使用闭包的方法,这个具体还要看你的方法的内容来添加,所以建议直接用第一种吧
(function(){
var myspan = $(span);
$("#mydiv").append(myspan);
})();
热心网友 时间:2022-05-15 19:51
你span是一个变量吗??按道理是不会啊,你看下我的附件,都可以按顺序添加的。。。你的结构和jquery是怎样的??能贴出来看看嘛??或者你到这边在线写好你的页面挂个链接出来看看
http://jsbin.com/welcome/1/edit
网友也比较好判断
热心网友 时间:2022-05-15 21:43
应该每次创建新的span,我想你这里是创建一个span之后移来移去的了。