【发布时间】:2016-11-23 09:01:07
【问题描述】:
我知道这可能是一个热门问题,但我想向这里的专家寻求专门针对我的问题的建议。
我的网页代表一棵具有无限滚动的树(意为植被),例如树的中间部分 - 图像,是迭代的,迭代次数取决于我的数据源。
因此,数据源是用户记录,将在树上表示为叶子。树的每个中间部分恰好有 n 叶子,并且 每个叶子 都有 onClick ajax 监听器:
我知道当用户向下滚动时我可以将元素附加到我的容器中,但问题是即使列表顶部的行在滚动出视图时变得不可见,它们仍然是页面的一部分并且仍然消耗资源。所以网络应用程序变慢了,监听器可能无法正常工作。
我正在寻找任何可以在元素变得不可见时动态销毁元素并在它们再次可见时重新创建它们的插件。
我几乎找到了解决方案angular ui-scroll directive,但不知道如何应用它。这是codepen,您的叉子将不胜感激。
我的页面现在在没有动态加载的情况下是这样工作的:
foreach($leaves as $i=>$leaf)
{
if($i % NUM_OF_LEAVES == 0)
{
echo "<div class='tree-section'>";
echo '<img class="part" src="'.Yii::$app->request->baseUrl.'/images/tree_center.png"/>';
echo '<div class="leaves">';
for($j = 0; $j<NUM_OF_LEAVES ; $j++)
{
if(isset($leaves[$i + $j])){
//show leaf $leaves[$i + $j]
}
}
echo '</div>';
echo '</div>';
}
}
【问题讨论】:
-
你玩过
angular-ui-scroll的演示吗? rawgit.com/angular-ui/ui-scroll/master/demo/serviceDatasource/… 基于服务的方法,甚至是具有单一数据获取解决方案的内窥镜可能非常适合您的需求 -
@haxxxton,谢谢,请你看看这个代码笔codepen.io/anon/pen/ZBKxaX,实现正是我所需要的,但我不知道如何调整它以适应我的问题跨度>
标签: javascript php jquery angularjs yii2