2

我们决定将 ExtJS 用于我们的大型应用程序的网络改造之一,我们将不得不生成屏幕/表单,我们必须在表单中的完整可编辑网格中呈现大约一千个或更多控件。

那么我可以知道这样做的最佳方法是什么?

我已经尝试生成大约一千个控件,并且在客户端需要大约 6 秒以上,这也将取决于客户端配置,我很肯定它在大多数情况下至少是双核系统.

但是在本地主机上超过 6 秒就像在互联网上超过 10 秒,所以我很担心,当负载很高时,我仍然可以选择混合普通的 html 表单/控件,但是它会错过 ExtJS 触摸(组合/数字控件等.),所以任何帮助或如果您有类似的经验,请分享。

在上述情况下,XTemplate 会更快吗?我对 ExtJS 还是新手,所以如果你知道/使用过,请分享最佳实践。

4

1 回答 1

5

最好的方法是不要这样做。无论您如何操作,创建数千个控件都需要大量内存。正如您所注意到的,这会使应用程序变得非常缓慢。

解决方案是将元素保留在服务器上,并使用某种形式的分页来仅创建用户实际可以看到的元素。

分页可以是显式的(“加载接下来的 10 行”)或通过在滚动条到达右/底端并加载更多行时触发事件来隐式分页。

通常,您甚至可以对用户隐藏它。总是加载一整行(隐藏同一行中不可见的元素,因为浏览器窗口太窄通常没有多大帮助)。

在服务器上,您将知道您有多少行。加载前 20 行并显示它们。找到行的高度(理想情况下,它们应该都是相同的高度)并在 20 行下方创建一个空的 DIV,以扩展滚动视图。这使它看起来好像所有的行都在那里(用户看到正确的滚动条在滚动时不会跳转)。

一旦看到那个空的 div,加载更多行并缩小它。

于 2012-07-12T09:01:36.210 回答