Javascript 包含3500+项的列表通过ajax一次加载一小部分。停止在UI中更新,但我看到li标记被附加到DOM中

Javascript 包含3500+项的列表通过ajax一次加载一小部分。停止在UI中更新,但我看到li标记被附加到DOM中,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有一个用例,其中向用户显示的列表中有数千项。它们一次加载一小批,我看到网络流量进出,看到数据加载。我看到DOM越来越大,但UI中的列表本身停止更新Chrome 当我检查它时,我看到代码中有数千个项目,当我通过控制台选择这些项目并使其计数时,我看到了正确的数字。但在页面本身中,我看不到这些项目被显示。列表使用拖放将项目从列表中放入另一个列表中,并加载有关这些项目的其他数据 目前不使用jquery.datatables,但很久以前就打算迁移到它们。我找不到一个好的例子,虽然,我看到的所有东西都使用

我有一个用例,其中向用户显示的列表中有数千项。它们一次加载一小批,我看到网络流量进出,看到数据加载。我看到DOM越来越大,但UI中的列表本身停止更新Chrome

当我检查它时,我看到代码中有数千个项目,当我通过控制台选择这些项目并使其计数时,我看到了正确的数字。但在页面本身中,我看不到这些项目被显示。列表使用拖放将项目从列表中放入另一个列表中,并加载有关这些项目的其他数据

目前不使用jquery.datatables,但很久以前就打算迁移到它们。我找不到一个好的例子,虽然,我看到的所有东西都使用分页来拆分,但如果这不是一个选项呢

我如何才能确定是什么阻止了项目的显示?参赛作品数量将在500至20000之间变化。


没关系。一切都按计划进行,duh。我很愚蠢,错过了一件非常明显的事情:事情有显示:没有一个很好的理由,我完全忘记了这与应用程序的核心逻辑有关。下次用棍子打我,这样我就可以记得多加注意了。

不知道你说的“DOM越来越大”是什么意思,但“看不到显示的项目”。 通常JS有一个主线程,它将处理函数/回调以及视图刷新。因此,如果操作被阻塞,视图将不会刷新


至于分页不是一个选项,您可以考虑使用DOM延迟加载机制,只将当前视口中应该放入DOM中的机制。当用户滚动时,您可以动态计算滚动高度,以便在DOM中添加/删除项目。需要记住的一点是,您通常需要为行定义一个固定高度,以便进行计算。这种延迟加载方式是解决这类问题的一种常见方式,被GXT、angular Grid等不同的框架广泛使用

你想让我们在没有任何示例的情况下调试你的代码吗?你到底是怎么做到的?你用什么方法?这是一个假设性的问题。可以在问题中包含js吗?看啊。我很愚蠢。没有问题,只是错过了一些我应该注意的事情。谢谢。这里没有问题,我只是很愚蠢,但这个答案为我指明了正确的方向,这样我就可以注意到实际上没有错的地方。应该更仔细地检查DOM。