Asp.Net页面请求性能大隐患 你是否做了这样的事情

ASP.NET Core 静态资源管家:深入解析 wwwroot 文件夹的配置与实战 本文深入解析ASP.NET Core中wwwroot文件夹的配置与实战应用,详细介绍了其设计原理、创建方法、目录结构优化及性能安全实践。通过实际案例,帮助开发者高效管理静态资源,提升Web应用的安全性和性能,是ASP.NET Core开发者的必备指南。 阅读详情

  项目测试中,客户向我们反应,某个页面请求速度特别慢,简直无法忍受。这里简单插一些情况的描述:对于一个使用人数、并发操作并不多的项目,客户不会过多的在性能上提出要求,对他们来说,多几百ms的等待时间,不会带来更多情绪。

    但是,当你请求某个页面后,去泡杯茶回来,发现页面还死死的在那里,进度条不紧不慢的一点一点增长,就无法忍受了。利用Firefox的debug测了一下,平均请求时间19s左右,而光import那个页面所需要的时间就是18s多,问题肯定出在页面上。

    那个页面是被IFreame包含进来的,包含5个TextBox、4个DropdownList、3个CheckBox、3个Button(作为分页的查询条件),下面就是分页的DataGrid(每页10条数据)。我注意到其中有一个DropdownList的ListItem有200多项,查了一下Response,发现viewstate黑压压一块。显然,这也是影响性能的一个原因。

    在跟客户商量后,将这个DropdownList改成了TextBox,做成模糊查询。恩,速度到了15s左右,快了3到4秒。这样的改善已经是很不错的成绩了,但是我们还要等待15s,显然无法让客户满意。

    这下问题就不明显了,我禁用了viewstate,发现并没有多少效果。页面数据量也不是很大啊,几个DropdownList的初始化,分页的实现是利用存储过程,在服务器数据库中,利用游标取记录条数。传递过来,也仅仅是10条而已。

    查看页面源代码发现N长的JS,是不是问题出在加载日期控件上呢?我将日期控件屏蔽了,再测,问题依旧,还是15s!!

    感觉有点束手了,测试其他页面,没有问题,响应速度很理想,甚至是一些控件N多的页面。

    不经意间点分页的“下一页”,恩,时间很漫长!可是我下一页的操作,只读取了下一个10条数据啊!我在服务器查询分析器下测试了存储过程,反应没问题。那问题应该是出在DataGrid的绑定了,这时候,我注意到,datagird中包含不少模板列,其中有不少LinkButton,涉及到显示不显示的逻辑操作,例如:

<asp:TemplateColumn>
        
<HeaderStyle Width="50px"></HeaderStyle>                         
        
<ItemTemplate>
                
<asp:LinkButton id="lbtnEdit1" runat="server" CausesValidation="false" CommandName="Disabled" Visible='<%# DataBinder. Eval(Container.DataItem, "IsDisable").ToString()=="1"  %>'> <span onclick="return confirm('确认作废?')">作废</span></asp:LinkButton>                                      
                
<asp:LinkButton ID="lbtnEdit2" runat="server" CausesValidation="false" CommandName="Able" Visible='<%# DataBinder.Eval(Container.DataItem,"IsDisable").ToString()=="2"  %>'><span onclick="return confirm('确认恢复?')">恢复</span></asp:LinkButton>                    
                
<asp:LinkButton ID="lbtnEdit3" runat="server" CausesValidation="false" CommandName="Disabling" Visible='<%# DataBinder.Eval(Container.DataItem,"IsDisable").ToString()=="0"  %>'><span onclick="return confirm('确认待报废?')">待报废</span></asp:LinkButton>
        
</ItemTemplate>
</asp:TemplateColumn>

 

    顿时,有了个想法,会不会是触发ItemDataBind事件,遍历表格控件时,消耗系统资源呢?

    将这部分功能屏蔽,果然!效果理想,响应时间到了3s左右,速度差强人意。我暗舒口气......

    总结:

    viewstate利弊共存,怎么使用,值得权衡。有时候,没有办法,不妨跟客户沟通一下,变换一些实现方法。

    永远不要在ItemDataBind时,做太多事情。不妨,将数据处理放在数据库(视图、存储过程)、或者是在绑定之前,写方法处理。

    性能永远是一个隐形的需求,而我在这方面经验匮乏。尤其是,目前的项目规模小,那些在code时,留下的挥霍内存的变量声明、占用CPU的循环、遍历算法的行为随处可见。现在,我们能做的,就是在意识到这些后,一点点的改变这些习惯把。

ASP.NET Repeater分页,查询分页 ASP.NET Repeater分页,查询分页 ASP.NET Repeater分页,查询分页 ASP.NET Repeater分页,查询分页 ASP.NET Repeater分页,查询分页 ASP.NET Repeater分页,查询分页 立即下载

相关推荐

汇川伺服驱动器参数优化实战指南

本文详细介绍了汇川伺服驱动器参数优化的实战技巧,涵盖控制模式选择、电子齿轮比调整、刚性匹配与振动抑制等关键内容。通过实际案例和实用技巧,帮助工程师快速掌握伺服驱动器参数调校方法,提升设备运行精度和稳定性。特别针对高精度定位和高速响应场景提供了专业指导。

weixin_29070721的博客 735

如果ASP页面长时间没响应造成自动重发申请的原因?

硬件条件: 服務器  WINDOWS SERVER 2008s2 +IIS7 客戶端 WIN7 +IE8 开发语言 asp.net + vb.net + js 问题描述: 刚开始页面初始化之类的就不说了,直接说中间的逻辑。 对了,下面所提到的页面hidden型变量a,它的初始值为0。 用户从页面点击某按钮(按钮注册为服务端控件),按钮里面做的事情就是通过Page.

zy-packaging的专栏 766

马尔可夫网络和贝叶斯网络的一些总结

马尔可夫网络和贝叶斯网络的一些总结 最近学习了一些关于概率逻辑的知识图谱推理方法,主要就是贝叶斯网络和马尔可夫网络,在此总结一下,内容都来自网络资料,这里加入了一下个人的理解,尽量为大家避雷! 这篇文章是我目前在网络上找到的关于贝叶斯网络最清晰的介绍,大家有兴趣可以去看看 贝叶斯网络中比较重要的两部分就是贝叶斯网络的结构和条件概率表。 贝叶斯网络的结构 下面通过一个例子来介绍: 贝叶斯网的网络结...

qq_43654303的博客 4374

关于ASP.NET中前端页面响应超时问题

关于ASP.NET前端页面超时问题的解决: <asp:ScriptManager ID="smMaster" runat="server" EnableScriptGlobalization="True" EnableScriptLocalization="True" AsyncPostBackTimeout="36000"> </asp:...

syl2850246的博客 880

电镀技术:微型制造的原子级加法工艺与核心优势

电镀是一种利用电解原理在基材表面沉积金属层的表面处理技术,其本质是通过电场控制溶液中金属离子的迁移与还原,实现原子级的可控沉积。这一过程的核心在于对电流密度、温度、添加剂等参数的精密调控,从而实现对镀层结晶结构、性能的“编程”。从技术价值看,电镀作为一种“加法制造”工艺,在微观尺度上具有无与伦比的保形性和材料灵活性,能够实现复杂三维结构的均匀覆盖与功能复合。在应用场景上,它尤其契合现代微型化制造的需求,例如在集成电路的铜互连填充、高密度PCB板微孔金属化、MEMS传感器电极制备以及柔性电子器件制造中发挥着不

weixin_42524842的博客 528

从东南大学906被刷到调剂过程(内含个人感想)

介绍了自己在看到初试成绩,到后期复习以及调剂的全过程,当中也包含了自己的复试中的感想,希望大家理性看待。

Philo的博客 2856

ASP.NET内存疯狂占用,我差点崩溃了,幸好还是解决了。

  原来写过的一部分ASP.NET的页面用于数据的选择,也就是把符合条件的记录都显示出来,由用户选择其中的一条。为了加快速度,所有符合条件的数据取出后放在了Session中,分页查找时直接取这个数据就可以了。一直运行的很正常(呵呵,可能是也不正常,只不过没有看出来),后来换了一个数据量比较大的系统,选择几次数据后内存占用竟然到了1个多G,最终造成内存超过极限进程崩掉了。  百思不得其解,数据是保存...

weixin_30352191的博客 1311

【RT-DETR有效改进】计算训练好权重文件对应的FPS、推理每张图片的平均时间(科研必备)

本文给大家带来的改进机制是利用我们训练好的权重文件计算FPS,同时打印每张图片所利用的平均时间,模型大小(以MB为单位),同时支持batch_size功能的选择,对于轻量化模型的读者来说,本文的内容对你一定有帮助,可以清晰帮你展示出模型速度性能的提升以及轻量化的效果(模型大小),对于以提高精度为目的的读者本文也能够帮助大家展示出现阶段的模型速度指标。所以本文的内容是十分有用的机制,对于大家发表论文来说,下面的图片为运行后的效果可以看到,该有的指标均已打印(本文内容为我独家创新,全网无第二份)下面是效果图和文

Snu77的博客 3629

Asp.net PageBase继承

加载对应Load事件和OnLoad方法,对于这个事件,相信大多数朋友都会比较熟悉,用VS.Net生成的页面中的Page_Load方法就是响应Load事件的方法,对于每一次请求,Load事件都会触发,Page_Load方法也就会执行,相信这也是大多数人了解ASP.Net的第一步。                   Page_Load方法响应了Load事件,这个事件是在System.Web

longvslove的专栏 3713

408 | 408常用计算公式与方法 —— 计组篇 汇总

408常用计算公式与方法 —— 计算机组成原理篇 汇总

"You are worthy! You can do it!" 4655

LDRA Testbed软件静态分析_操作指南

从本文起,将开始LDRA Testbed(TBrun)教程的系列文章,包括软件静态分析、单元测试、集成测试,以及基于Testbed的自动化工具开发、持续集成、常见问题解答等。LDRA公司是专业的软件测试工具与测试技术、咨询服务提供者,其总部位于英国利物浦。其旗舰产品Testbed/TBrun功能全面、易于使用,不仅适合于主机平台软件测试,同时适合于嵌入式软件测试。不仅能进行软件静态测试,还能进行软件单元测试、软件集成测试,在白盒测试领域运用比较广泛。

文章主要涉及嵌入式软件开发、测试、项目管理等,欢迎交流,共同进步。 1万+

ASP.NET使用NPOI将数据导出Excel

【目的】在Web界面及WebAPI接口中实现将数据导出为Excel 【技术】使用了ASP.NET MVC和开源项目NPOI

郑林的专栏 2582

SentEval学习笔记

SentEval allows you to evaluate your sentence embeddings as features for the followingdownstreamtasks: Task Type #train #test needs_train set_classifier MR movie review(影评) 11k 11k 1 1 CR product review(产品评述) ...

AlphaFinance 803

保护ASP.NET应用免受CSRF攻击

CSRF是什么? CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF。CSRF(Cross Site Request Forgery, 跨站域请求伪造)是一种网络的攻击方式,它在 2007 年曾被列为互联网 20 大安全隐患之一。其他安全隐患,比如 SQL 脚本注入,跨站域脚本攻击等在近年来已经逐渐为众人熟知,很多网站也都针对他们进行了防御。然而,对于大多数人来说,CS

学者-微风 436

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

页面传值也要考虑安全性

        我们培训一年的时间里,重点学习两项技术.NET和PHP,在WEB开发中,少不了一项工作就是页面的传值问题。ASP.NET我们知道有6中传值方式,我在学习期间最常用的就两种方式session和跳转页面时?后面带参数,然后requst接收。PHP的传值主要是依靠form表单的提交功能,有GET和POST两种接收大量的数据,而session在PHP中也是非常好用。大家想必都知

yanglegengxue的专栏 1256

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

ASP.net 代码保护,发布时编译源码

ASP.NET较之以前的asp页面,在安全性方面得带了大大加强,不过如果你不够熟悉其用法,就无法将微软提供的安全性发挥得最佳。大家都知道,ASP.net页面可以通过发布的方式将编译后的页面上传到服务器,服务器端没有源代码,即使黑客攻破了网站的防御,获取并篡改有价值的数据就会增加一定的难度。那么我们在发布站点的时候又应该注意些什么呢? 发布网站时Visual studio会弹出如下的参数配置对

小小辰西专栏 502

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

保护ASP.NET 应用免受 CSRF 攻击

保护ASP.NET 应用免受 CSRF 攻击 保护ASP.NET 应用免受 CSRF 攻击 保护ASP.NET 应用免受 CSRF 攻击 原创2015-12-12张善友dotNET跨平台 CSRF是什么?   CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click a...

weixin_30602505的博客 160

Java大厂面试高频考点:从基础到微服务全链路解析

Java面试中,基础原理与微服务架构始终是考察重点。从HashMap的数据结构演进到ConcurrentHashMap的并发控制,从JDK动态代理到Spring AOP的落地,再到MySQL索引优化与Redis缓存穿透治理,每个技术点都需理解其底层机制与设计初衷。微服务场景下,Nacos的服务发现、Sentinel的限流熔断以及接口文档聚合,更是检验候选人能否将基础能力迁移到分布式系统中的关键。本文以原理驱动实践,梳理从集合框架、JVM并发到服务拆分、流量治理的高频考点,帮助开发者建立“概念→原理→应用→故

weixin_33851177的博客 517

ASP.NET MVC 项目直接预览PDF文件

背景及需求   项目使用的是MVC4框架,其中有一个功能是根据设置生成PDF文件,并在点击时直接预览。 实现过程 1、第一版实现代码:   HTML内容 @{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name="...

aoyouti7325的博客 735

表格搞定 Asp.net Web 状态管理

最近在网上搜罗了ASP.NET WEB 状态管理方面的一些内容,终于把这些内容整合总结了一下。 1. 希望自己通过整理,能够掌握一些,为自己投资。 2. 以便自己忘记,又要浪费时间搜罗。 3. 希望对园友有帮助,这是一件很开心的事情 4. 希望大侠们看到问题及时帮忙指正,不想误导自己,更不想误导园友,在下不胜感激 不再磨叽,马上上菜 名称 用户 ...

weixin_30815469的博客 68

BugTracker.NET 汉化手札

BugTracker.NET 汉化手札 引 言   在以前的公司就曾推荐在项目组中用 BugTracker.net(错误跟踪管理 ★开源★ 直到现在他们仍然在使用),最近自己需要对一个网站项目进行错误跟踪管理,自然就又想到了它。上网下载了个最新版本2.1.4(2005/10/22)。   因为现在需要将其部署在公共Web服务器上让普通用户使用 BugTracker 来报告错误,所以...

weixin_30258901的博客 113
上一篇: json json-rpc 如何在项目中便宜引入Ajax框架 (Joyrock开源项目)
下一篇: 存储过程将.txt.xls文件数据导入数据库表格
晓梦庄子
博客等级 码龄19年 4粉丝 129原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晓梦庄子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值