一、网页设计相关:

1,做好页面布局和内容规划,只放置合适的内容,并尽可能使页面设计的最小。

2,使用好的网页编辑器,如DW,FP,不要用VS自带的编辑器,因为它会产生很多无用的沉余代码,而且设计的界面也不是很好看。

3,小图片采用GIF格式,下载速度最快,大一点的采用jpg,占用磁盘空间小。

4,尽可能使用CSS,这既是原则也是方法,可以使整个网站浏览速度提高3%以上,有的甚至能够提高30% 。

5,尽量不要使用框架,在需要的地方也要有替代措施。

6,不要只针对IE写客户端脚本。

7,客户端的事情尽量在客户端处理。现在客户端设备已经很强了,许多原来在服务器端才能做的事情现在都能在客户端做,而服务器端反而成了访问的瓶颈。

8,少用Flash。Flash一般都会占较大的网络带宽,在需要的时候也要注意不要做得太大用的太多。

9, 避免使用弹出式对话框,因为现在好多浏览器都被装上了“弹出窗口拦截”插件。说服用户解决这个问题有时是很恼火的,因为他们不是都能熟练的使用计算机。

二、.NET设计相关

1,能用Label的地方不用TextBox,因为Label比起TextBox来说是轻量级的控件。

2,尽量使用Repeater 控件绑定列表数据,有两个原因,一是可以保留美工原始的界面设计效果,二是比起DataGrid控件,性能可以提升70%(有专门的测试案例)。

3,如果页面仅仅是浏览不用回送服务器端继续处理,那么不要使用页面视图ViewState。如果一个界面上有很多控件那么视图将会占去一半的页面大小。其他情况也要尽量少用页面视图。

4,采用缓存技术。从缓存位置可以分为客户端缓存、代理缓存、服务器端缓存;从具体页面来说可以分为整页缓存、局部缓存、数据缓存。缓存技术可以极大地提高Web服务器的处理能力,是最经济有效的提高访问速度的措施。

5,静态页面生成技术。如果采用缓存不能起到很好的作用那么可以将经常访问的页面生成静态页面。像三大门户网站都采用了这个技术,很多CMS也都采用了该技术。

6,服务器处理数据,客户端负责展现。把客户端的事件放到服务器端去处理在互联网上不是好注意,不能想象这是一个企业内部的Web应用程序。

7, 少用Session。如果要在页面之间传递参数,可以采用URL方式或者页面视图方式,如果是跨页面的数据传递,那么也最好使用Cookie 。Web访 问的特点决定了这个多用户并发访问环境,Session会占用很多服务器资源,如果访问量很大这个资源占用是很高的。

8,合理使用Application 。不同于缓存对象,它能够提供更好的全局数据访问,适合于需要长时间缓存频繁的公共数据。

9,注意Cookie 问题,有的浏览器可能不支持使用Cookie 访问你的站点,在使用Cookie 之前一定要检测客户端是否支持并采用相应的策略。

10, 只访问需要的数据,现在Ajax技术可以很好的处理这类问题,它让页面处理速度更快表现力更丰富。

三、数据访问相关

1,优化数据库结构设计。这是数据访问效率和编程复杂程度的关键。没有良好的数据库结构设计其它都谈不上。包括字段类型的选择,表的结构,索引的使用,表的关系等。

2,优化数据库物理设计。这里关注的是数据库容量,日志,磁盘使用,数据备份机制,数据访问机制,安全等数据库物理结构相关的问题。

3,合理设计“主键”:在不同的场合需要采用不同的主键设计策略,在互联网大容量并发访问的环境中,建议主键采用整形自增字段。主键使用还应该遵循“无意义”原则。

4,采用最佳的数据访问接口,如专门针对SQL Server的数据访问对象。

5,“只要需要的数据”:如果一行有大容量字段,那么读取一整行效率是非常低的(数据瓶颈)。

6,最迟打开,最早关闭的原则。使用数据库后一定要及时关闭连接,它们是系统昂贵的资源。

7,采用“数据缓存”技术,将经常使用数据集缓存在磁盘或者内存中,尽量减少对数据库的直接访问。

8, 使用存储过程。可能在一般的应用系统中存储过程可以被简单的查询替代,因而更“通用”,但是我们现在讨论的是大型企业信息门户网站的问题。作为一个互联网 应用系统,处理速度和网络带宽无疑是最重要的。系统的瓶颈往往是磁盘IO和网络IO,合理使用存储过程使得分布式系统结构效率大大提升。但也要注意合理使 用,比如避免一般的分页过程,由于查询会有很多,使得这样的存储过程太多而管理混乱。

9,慎用游标。数据库的游标执行效率一般都比较低,一般都可以使用复杂的查询语句代替,合理的数据库结构设计也可以避免这个问题。

10,合理使用触发器。大部分人觉得触发器使得数据关系不明确,即屏蔽了数据的关系,但是当一个系统非常复杂的时候,数据关系更是复杂,这时候使用触发器来维护数据的一致性和数据同步的功能,可以有效地屏蔽数据关系的复杂性,减少程序代码。

11,合理使用事务:如果不是需要连续处理的或者需要特别安全的数据处理,不要使用事务,因为事务的使用会影响数据库的并发性能。单纯的查询过程也使用事务更不可取。

12,安全的数据访问:目前十分常见SQL注入式攻击,需要注意数据库系统安全设置和Web程序编码问题引起的安全漏洞。

 

ASP.NET中怎样才能使自己的代码运行的效率更高的更多相关文章

  1. Spring AOP中的JDK和CGLib动态代理哪个效率更高?

    一.背景 今天有小伙伴面试的时候被问到:Spring AOP中JDK 和 CGLib动态代理哪个效率更高? 二.基本概念 首先,我们知道Spring AOP的底层实现有两种方式:一种是JDK动态代理, ...

  2. “Using 声明”在 C# 7.3 中不可用。请使用 8.0 或更高的语言版本。

    Core3.0升级至3.1时候报错:“Using 声明”在 C# 7.3 中不可用.请使用 8.0 或更高的语言版本. 参照微软文档:https://docs.microsoft.com/zh-cn/ ...

  3. 在类中,调用这个类时,用$this->video_model是不是比每次调用这个类时D('Video')效率更高呢

    在类中,调用这个类时,用$this->video_model是不是比每次调用这个类时D('Video')效率更高呢  

  4. ASP.net中网站访问量统计方法代码(在线人数,本月访问,本日访问,访问流量,累计访问)

    一.建立一个数据表IPStat用于存放用户信息 我在IPStat表中存放的用户信息只包括登录用户的IP(IP_Address),IP来源(IP_Src)和登录时间 (IP_DateTime),些表的信 ...

  5. 20 个让你效率更高的 CSS 代码技巧

    在这里想与你分享一个由各大CSS网站总结推荐的20个有用的规则和实践经验集合.有一些是面向CSS初学者的,有一些知识点是进阶型的.希望每个人通过这篇文章都能学到对自己有用的知识. 1.注意外边距折叠 ...

  6. iOS 中如何监测某段代码运行的时间

    在iOS里面有时间涉及到网络请求,有时间涉及到数据库的查询,我们需要计算该段代码的效率, 以及执行时间方面的问题,为此,可以使用下面方法: double a = CFAbsoluteTimeGetCu ...

  7. 深度揭秘Netty中的FastThreadLocal为什么比ThreadLocal效率更高?

    阅读这篇文章之前,建议先阅读和这篇文章关联的内容. 1. 详细剖析分布式微服务架构下网络通信的底层实现原理(图解) 2. (年薪60W的技巧)工作了5年,你真的理解Netty以及为什么要用吗?(深度干 ...

  8. maven-source 1.3 中不支持注释请使用 -source 5 或更高版本以启用注释

    解决办法:在pom里 加上以下代码 <build> <plugins> <plugin> <groupId>org.apache.maven.plugi ...

  9. 使用maven编译的时候提示 maven-source 1.3 中不支持注释请使用 -source 5 或更高版本以启用注释的错误。

    在编译的模块的pom文件中加上 <build> <plugins> <plugin> <groupId>org.apache.maven.plugins ...

随机推荐

  1. Android 的权限设置大全

    android.permission.ACCESS_CHECKIN_PROPERTIES //同意读写訪问"properties"表在checkin数据库中.改值可以改动上传 an ...

  2. apache 开启压缩功能

    apache如何开启压缩功能. 1,首先先确认是安装deflatte模块.如果未安装,可以重新编译apache添加参数--enable-deflate=shared ,或者扩展安装deflate模块, ...

  3. Eclipse 常用快捷键 (动画讲解)(转载)

    http://www.cnblogs.com/TankXiao/p/4018219.html#fix 很详细呀/

  4. IOS总结 静变量static、全局变量extern、局部变量、实例变量

    1.静态变量 static 什么是静态变量:从面向对象的角度触发,当需要一个数据对象为整类而非某个对象服务,同时有力求不破坏类的封装性,既要求此成员隐藏在类的内部,有要求对外不可见的时候,就可以使用s ...

  5. SQL中Truncate的用法(转)

    转自:http://www.studyofnet.com/news/555.html 本文导读:删除表中的数据的方法有delete,truncate, 其中TRUNCATE TABLE用于删除表中的所 ...

  6. qt界面不显示的原因

    用qt designer弄了一个qq.ui 新建一个空项目,把qq.ui加入,新建一个qq类,qq.h如下 #ifndef QQ#define QQ #include <QMainWindow& ...

  7. go pprof

    import _ "net/http/pprof" func main() { go func() { http.ListenAndServe("localhost:60 ...

  8. VB 基础语法以及教学视频

    以下是我找到的几个视频和基础知识地址,我感觉比较不错的,现在分享给大家,你们都可以去借鉴以下 视频地址1:http://www.kcch.cn/excel2007_825.html 视频地址2:htt ...

  9. js 控制不能输入空格

    onkeydown="if(event.keyCode==32) return false"

  10. Python之路第六天,基础(7)-正则表达式(re)

    Python RE模块(正则表达式) 就其本质而言,正则表达式(或 RE)是一种小型的.高度专业化的编程语言,(在Python中)它内嵌在Python中,并通过 re 模块实现.正则表达式模式被编译成 ...