一、性能参数:
1、 吞吐量
2、 响应时间
3、 执行时间
4、 可伸缩性
二、性能因素:
1、ASPX执行环境
2、编写代码逻辑
三、提高性能的方法:
1、 避免不必要的操作.例如:在Page_Load中使用IsPostBack;
2、 尽量减少使用服务器端控件
3、 关闭不必要的页面Session和控件的ViewState <%@Page EnableSessionState =”false”%>
4、 禁用VB和JSP动态类型 <%@Page Language=”VB” Strict=”true”%>
5、 使用存储过程
6、 使用DateReader代替DataSet
7、 关闭ASP.Net的Debug模式
8、 使用ASP.Net的Output Cache缓冲
<%@ OutputCache Duration=60 VaryByParam=”None” %>
<%@ OutputCache Duration=60 VaryByParam=”TextBox1,TextBox2” %>
说明: Duration是设置Cache的过期时间;
VarByParam是设置是否根据参数而变化,None时所有参数使用同一Cache,设置TextBox1时则根据TextBox1的不同值分别缓存;当有多个参数时则要组合缓存;
9、 不要使用Exception控制程序流程
t ......
ajax+asp.net+mssql实现的ajax无刷新聊天室,支持html web编辑器。
为了加快速度,使用了存储过程。
asp及php版本请看下面的文章
ajax+asp+mssql无刷新聊天室
ajax+php+mssql无刷新聊天室
此例子也可以作为mssql存储过程使用的示例,如php调用mssql的存储过程,php获取mssql数据库的输出参数。
要使用不同的动态页面,只需要更改lib.js文件中RequstUrl变量的值即可。
完整示例下载
效果如下
var Showbo={author:'showbo',homepage:'http://www.code-design.cn'};
Showbo.IsIE=!!document.all;
Showbo.IsFireFox=navigator.userAgent.indexOf("Firefox")!=-1;
Showbo.trim=function(v,reg){if(reg)return v.replace(reg,'');else return v.replace(/^\s*|\s*$/,'');}
Showbo.getJson=function(v){return eval('('+v+')');}
//获取某个对象的绝对位置
Showbo.getAbsPos=function(o,addXY){o=Showbo.$(o);var p=new Object();p.x=o.offsetLeft;p.y=o.offsetTop;while(o=o.offsetParent){p.x+=o.offsetLeft;p.y+=o.offsetTop;}if(addXY){if(!isNaN(addXY.x))p.x+=addXY.x;if(!isNaN(addXY.y))p.y+=addXY.y;}return p;}
Showbo.$=function(Id,isFrame){
var o ......
ajax+asp.net+mssql实现的ajax无刷新聊天室,支持html web编辑器。
为了加快速度,使用了存储过程。
asp及php版本请看下面的文章
ajax+asp+mssql无刷新聊天室
ajax+php+mssql无刷新聊天室
此例子也可以作为mssql存储过程使用的示例,如php调用mssql的存储过程,php获取mssql数据库的输出参数。
要使用不同的动态页面,只需要更改lib.js文件中RequstUrl变量的值即可。
完整示例下载
效果如下
var Showbo={author:'showbo',homepage:'http://www.code-design.cn'};
Showbo.IsIE=!!document.all;
Showbo.IsFireFox=navigator.userAgent.indexOf("Firefox")!=-1;
Showbo.trim=function(v,reg){if(reg)return v.replace(reg,'');else return v.replace(/^\s*|\s*$/,'');}
Showbo.getJson=function(v){return eval('('+v+')');}
//获取某个对象的绝对位置
Showbo.getAbsPos=function(o,addXY){o=Showbo.$(o);var p=new Object();p.x=o.offsetLeft;p.y=o.offsetTop;while(o=o.offsetParent){p.x+=o.offsetLeft;p.y+=o.offsetTop;}if(addXY){if(!isNaN(addXY.x))p.x+=addXY.x;if(!isNaN(addXY.y))p.y+=addXY.y;}return p;}
Showbo.$=function(Id,isFrame){
var o ......
ajax+asp.net+mssql实现的ajax无刷新聊天室,支持html web编辑器。
为了加快速度,使用了存储过程。
asp及php版本请看下面的文章
ajax+asp+mssql无刷新聊天室
ajax+php+mssql无刷新聊天室
此例子也可以作为mssql存储过程使用的示例,如php调用mssql的存储过程,php获取mssql数据库的输出参数。
要使用不同的动态页面,只需要更改lib.js文件中RequstUrl变量的值即可。
完整示例下载
效果如下
var Showbo={author:'showbo',homepage:'http://www.code-design.cn'};
Showbo.IsIE=!!document.all;
Showbo.IsFireFox=navigator.userAgent.indexOf("Firefox")!=-1;
Showbo.trim=function(v,reg){if(reg)return v.replace(reg,'');else return v.replace(/^\s*|\s*$/,'');}
Showbo.getJson=function(v){return eval('('+v+')');}
//获取某个对象的绝对位置
Showbo.getAbsPos=function(o,addXY){o=Showbo.$(o);var p=new Object();p.x=o.offsetLeft;p.y=o.offsetTop;while(o=o.offsetParent){p.x+=o.offsetLeft;p.y+=o.offsetTop;}if(addXY){if(!isNaN(addXY.x))p.x+=addXY.x;if(!isNaN(addXY.y))p.y+=addXY.y;}return p;}
Showbo.$=function(Id,isFrame){
var o ......
前台设计页面.aspx
<body>
<form id="form1" runat="server">
<div>
<CR:CrystalReportViewer ID="CrystalReportViewer1" runat="server" AutoDataBind="true" />
</div>
</form>
</body>
后台.aspx.cs文件
//引入报表空间
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Web;
using CrystalDecisions.Shared;
//
using System.Data.SqlClient;
protected void Page_Load(object sender, EventArgs e)
{
// 1.首先在项目的该网页对应的文件夹里面添加新项------选择Crystal 报表(默认名称:CrystalReport.rpt)
// 2.在次在项目的该网页对应的文件夹里面添加新项------选择添加数据集(默认为:clumn1,可修改)
// 3.在数据集(默认为:datatable1),右键点属性:添加列(默 ......
这两天因为要做一个可以收集用户提交信息,然后发送邮件到指定邮箱的网页。在 asp.net 2.0 里面发送邮件可以使用 System.Net.Mail 下面的类。http://www.systemnetmail.com/faq/2.1.aspx 这个地址有 System.Net.Mail 的作者写的仿佛是 MSDN 类似的 Faq,看代码的时候可以参考以下。什么都不说了,下面贴出来代码吧,毕竟代码是最重要的:
1protected void btnSend_Click(object sender, EventArgs e)
2 {
3 MailMessage mailMessage = new MailMessage();
4 string strBody;
5
6 mailMessage.from = new MailAddress("XX@gmail.com");
7 mailMessage.To.Add("XXX@gmail.com");
8 mai ......
asp.net窗体的打开和关闭
//打开新的窗体
Response.Redirect("WebMain.aspx");
//弹出一个新窗体
Response.Write("<script>window.open(\"WebMain.aspx\")</script>")
//弹出一个只有确定按钮的提示框
Response.Write("<script>alert(\"用户名或密码错误\");</script>");
//关闭窗体不提示信息
Response.Write("<script>window.opener=null;window.close();</script>");
//关闭窗体提示一条信息
Response.Write("<script>window.close();</script>");
//关闭窗体提示两条信息
Response.Write("<script>if(confirm(\"确定退出?\")==true){window.close();}</script>");
......
直接重写Render事件
protected override void Render(System.Web.UI.HtmlTextWriter writer)
{
StringWriter sw = new StringWriter() ;
HtmlTextWriter htmlWriter = new HtmlTextWriter(sw) ;
base.Render(htmlWriter) ;
//当前用户选择的风格css
string css = "<link href=\"css url\" rel=\"stylesheet\" type=\"text/css\">" ;
string html = sw.ToString() ;
int startPoint = html.IndexOf("</head>", StringComparison.CurrentCultureIgnoreCase);
......