首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Telerik网格提高ASPX页面性能

使用Telerik网格提高ASPX页面性能
EN

Stack Overflow用户
提问于 2014-04-09 06:39:15
回答 2查看 315关注 0票数 0

我的问题与aspx页面的性能提高有关。因此,在阅读这篇文章后,请评论是否有可能提高本页面的性能。

这是一个场景。

我正在使用以下工具开发一个asp.net web应用程序

  1. .Net 3.5
  2. 类型化数据集(10个表)
  3. IE8兼容视图-IE7标准(应用程序不适用于FF、Chrome或任何其他浏览器)
  4. Telerik RadControls.(网格、数字Textboxe、自动完成的下拉列表)
  5. 应用织物缓存。
  6. Jquery和其他特定于页面的javascripts。

ASPX页面包含

  1. 8个网格(其中6个是telerik网格,2个是html表)
  2. 所有telerik网格都定义了EditFormTemplates。
  3. 很多控件(我不知道实际使用了多少控件,所以我并不热衷于清理aspx页面,因为这可能需要很大的dev/qa努力,不幸的是,这现在不是一个选项)。
  4. 在RadScriptBlock中有大量的javascript。(我们还有javascript,它在网格的宽度和其他用户界面上摆弄)
  5. 对页面上的所有网格和控件都启用了ViewState。

这些网格上的操作是-插入、更新、删除、复制、删除所有。

所有这些操作都是通过部分回发完成的。

数据库访问次数不多,因为大多数数据都缓存在appfabric中。

现在,这听起来可能有些怪异,但在这一页中有数千行代码。代码后面大约有30k行,jS中有5k行,aspx页面中有大约4k行(html/js加起来)。代码中有复杂的逻辑,它运行在页面加载以及每个部分回发上,并且大多数网格在几乎每次回发时都是重新绑定(Ed)的。

我们所做的事情,以提高性能(这并没有多大帮助)。注意:再次重写整个页面不是一个选项,所以所有的增强都必须在这个页面中进行。

  1. 缩小所有javascripts,CSS
  2. 在Radscript mangaers脚本集合中添加了所有脚本(我不知道这在任何情况下是否有帮助,但被告知这样做)。
  3. 将写在aspx上的所有javascript从RadScriptBlock移到js文件。
  4. 重构了大量代码,并尽量减少了appfabric(push,get)的使用。
  5. RadCompression已经实现了。
  6. 所有网格都使用服务器分页(每页5条记录)。

页面几乎没有任何静态内容。页缓存,不可能查看此页的使用情况。

我不知道这是否让任何人感到惊讶,但是这个页面上的部分回发操作大约需要4-6秒(Request+Response+Render)。我认为这是相当的fas,看看在后台运行的代码。但客户可不这么觉得。

期望页面上的任何操作不应超过1-1.5秒.

问题

  1. 是否有可能通过查看本页中使用的基础结构来提高性能?
  2. 如果有可能的话,我遗漏了哪些内容,这会使页面表现得更好。
  3. 我已经看到,每个网格的ItemCreated和ItemDatabound被称为RowCount的次数比RowCount多得多。我知道每个项目都需要这样做,比如页眉、页脚和项,但是如果我的行数为5,为什么这些方法被调用超过10次?
  4. 我在代码中看到,开发人员疯狂地使用Rebind()方法(可能这就是第3种方法的原因)。有人能告诉我什么是正确的方式和位置调用重新绑定吗?我知道Telerik网格在插入时调用重新绑定隐式,但是在什么情况下我们需要显式地调用重新绑定?

我试图检查整个代码库,并试图找出瓶颈。

如果有人给我任何建议,让我准备在代码上试用,我会非常感激的。

如果还需要更多的信息,请告诉我。

谢谢。

编辑

进一步的分析,我已经检查了整个页面的视图状态,它大约是33 it。另外,当我从页面中删除AjaxSettings时,页面在2/3秒内加载得相当快。所以我觉得页面的some化在呈现页面时产生了一些问题。

我还记录了服务器进程的时间,根据网格的工作时间大约需要1/2秒。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-20 07:24:03

经过大量的分析,并在不同的层中进行挖掘,我们发现有几个存储过程是罪魁祸首。程序中也发现了一些不寻常的调用,这在很大程度上减缓了页面的速度。修复它给了我们很好的性能提升。此外,我们还必须在网格渲染事件中做一些调整。

我不确定这个答案是否对未来的人有帮助,但我希望它至少能给出一些指点。在这个节目单上,戴纳通斯真的很有用。

票数 1
EN

Stack Overflow用户

发布于 2015-02-11 14:15:16

在我的例子中,Telerik的数据访问没有正确配置,这导致数百个单独的SQL查询来填充一个控件,而不是一次执行一个将所有数据输入的查询。与其重复我们为分析和修复它而采取的所有步骤,我希望只要简单地发布到我所写的关于链接的博客文章的链接就可以了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22954677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档