来自 Asp.net mvc 的大型 html 页面

Posted

技术标签:

【中文标题】来自 Asp.net mvc 的大型 html 页面【英文标题】:Large html page from Asp.net mvc 【发布时间】:2011-07-29 17:56:52 【问题描述】:

我有一个视图,它基本上在网格中显示了一堆行和列(直接来自表)。

到目前为止,这一切正常,但是,当我在表中有 600 行和大约 30 列时,在 Chrome 中无法查看该页面,而 CPU 保持在大约 50%。

显然我需要进行某种分页,但我想知道这是否符合预期(即无法在浏览器中查看大型 html 文档),还有一种方法可以将视图保存为文本文件而不是而不是试图在浏览器中查看它?换句话说,在浏览器尝试渲染之前查看页面的内容(如页面视图源)。

** 进一步调查 **

我目前正在使用 JQueryMobile,我删除了页面引用的脚本,并且表格没有加载。任何想法为什么脚本会导致加载这么多问题?

TIA

京东

【问题讨论】:

你可以使用telerik grid for asp.net mvc。它会自己做所有的分页和额外的事情。 jquery mobile 不应该与此类内容一起使用。如果您将 jquery mobile 与您的这个巨大的表一起使用,那么这将是一个巨大的混乱。发布/链接一些代码或示例以获得答案 是的,我同意。我只是想直观地显示一些数据,因为我过去使用的是 JQuerymobile,所以我只是使用了样式等。我将引入分页以使其工作(这只是一个概念证明,看看我将如何获取数据)。谢谢。 【参考方案1】:

这将取决于很多事情,例如您的硬件、返回的数据量以及返回数据后您对数据的处理方式以及浏览器本身。您可以尝试不同的浏览器,看看是否有任何不同。您对分页的看法是正确的,您将需要它以使其以可接受的方式工作。

浏览器需要先下载页面才能看到源码,这在页面完全下载之前是做不到的。如果只想查看页面内容,可以使用curl 将文件下拉到本地文件系统。

【讨论】:

【参考方案2】:

我会说这种行为是意料之中的;正如您所说,分页是一种可能的解决方案。

您可以选择呈现为 Excel 或 CSV。还有其他关于 SO 的问答提供了这方面的基础知识,例如

CSV

Excel

【讨论】:

【参考方案3】:

在浏览器完全接收表格之前,无法呈现表格。因为最后一个单元格的微小变化可能会导致总表的布局发生变化。

600x30 的单元格不算大,但也不小。所以我可以想象 Chrome 的人不会针对这种表格进行优化。

如果你specify the width of each column,性能可能会更好。

【讨论】:

【参考方案4】:

我的错,我只是想在一个表中获取数据,因为我在另一个项目中使用 JQueryMobile,所以我使用了 JQM 中的复选框,这些复选框并非旨在处理大量数据。

我目前正在分页,数据按预期显示。

感谢所有提供帮助的人。

【讨论】:

以上是关于来自 Asp.net mvc 的大型 html 页面的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET MVC 解析模板生成静态页一(RazorEngine)

七天学会ASP.NET MVC——创建单页应用

ASP.NET MVC之路由特性以及母版页呈现方式

asp.net mvc框架优缺点

[Angularjs]asp.net mvc+angularjs+web api单页应用之CRUD操作

[Angularjs]asp.net mvc+angularjs+web api单页应用