我有一个使用html5,bootstrap和angular构建的网站。 加载时,系统会要求用户填写大量的搜索信息,当按下" go"时,我会从我的数据库中获取大量数据,并且每次操作都会得到#34;通过使用的问题,我使用高级图表创建了一个表格和一个图表。
问题在于当用户要求进行大量的操作时#34;要显示,加载数据大约需要30秒+,使用户可以执行任何操作(包括滚动)。
有没有办法改善这个?
我想到的一种方法是使用代理设计模式将一些图表和表格虚拟化,直到用户滚动查看它们,JS和高级图表为止。
重要的是,当使用chrome调试器检查网络时,几乎一半的加载时间是在客户端 - 我必须假设这么多时间用于构建图表。 (当然另一半是在服务器端,我将不得不在那里处理它)
非常感谢,即使搜索方向也会有所帮助
编辑:现在看来我正面临着另一个问题。 我还必须解决从服务器下载很长时间才能解决的问题。就像我之前说过的,我有很多需要在服务器端计算的数据然后需要发送回客户端。再说一遍,如果我不想立即下载大量的内容但是大块的内容会怎样?可能吗? 服务器端是用C#MVC和实体框架编写的答案 0 :(得分:0)
您可以使用infinity.js之类的内容。仅渲染页面上当前视图中的元素,并适当地响应滚动事件。以下是API文档的摘录,描述了一个名为ListView
的元素,它与您的问题相关:
ListView是一个将内容移入和移出DOM的容器 滚动事件。 ListViews有助于保持昂贵页面的重绘时间 向下(并滚动平滑)确保永远不会有 屏幕上的许多元素一次。 ListViews在超速驾驶方面表现出色 复制HTML元素的长列表,其中包含新内容 经常附加到最后,很少删除现有内容。