asp.net 异步页面
前几天我没事在图书馆借本··嘿嘿,挺有意思的,另外那天在贴吧看到的一才女的问题突然想到了··就看了看,挺有意思的。
具体总结的内容我今天写出来,肯能有点长,但是对网站绝对有用。
页面的处理默认情况下,处理ASP。NET页面的模型本质上是同步的。这说明,页面的流程是固定的,每一页由一个线程处理,而且线程在处理完前不会释放。服务器线程池中的线程师有限的,一旦服务器用完所有的线程,你就会碰到可恶的“服务器不可用”的错误。甚至在此前,由于等待线程和内务的任务增多,你会发现性能下降。所以,要改善性能,不仅希望尽可能快的处理页面,还要尽快地线程释放回线程池。通常无法显示地控制何时释放线程,但是倘若采用异步处理,就能释放线程,让它从长时间运行的页面脱身。
asp.net 2.0为异步页面引入了一个简单易行的模型,不过一定要理解网页中的异步到底是什么含意,这很重要。从客户浏览器接收到一个请求时,在页面返回给浏览器之前必须处理整个页面。异步页面不允许分阶段的地传输页面,尽管可以将输出缓冲起来 ,但这是两码事。如果想传递部分页面,接下来一步的运行一个任务,然后,再把更多数据发回给客户,这是做不到的。
页面由一个县城从上到下地处理。这一点很重要,因为要由一个线程来负责这个请求,如果一个页面停顿,这可能是因为正在通过一个web服务访问远程数据,请求处理完成之前这个线程是无法释放回服务器。如果大量请求都存在这种情况,服务器就很容易用光所有线程。异步页面则可以缓解这种情况,如果页面在正常处理过程中可能要完成一个长时间运行的任务,可以不再依赖于单线程。需要指出哪些任务需要异步的处理,在在PreRender事件之后,异步任务启动。处理请求的线程释放回线程池,页面请求等待,知道处理可以继续(异步任务完成时就可以继续处理了)。asp.net知道异步任务何时完成(任务开始时它注册了一个委托),所以可以从线程池取一个线程,并继续处理这个页面。
异步处理不光能加快单个页面的处理。而能加快整个网站的速度。线程池中有更多可用线程,这就意味着可以处理更多的请求。·····
看起来是不是很酷·····
这只是目前的理论,等等会操作了,我会接续吧实现方式写出来··这样就更酷了·
相关文档:
数据绑定控件比较(Reapter\DataList\GridView\DatailsView\FormView):
1.插入功能方面:
DetailsView和FormView具有插入功能,其它控件没有
2.模板
DataList\FormView\Repeater三种必须编辑模板,而
GridView和DetailsView只有在将列转换成模板列以后才会出现各种模板.
3.自动分页功能
GridView ,DetailsView和FormView ......
1. 打开新的窗口并传送参数:
传送参数:
response.write("<script>window.open(’*.aspx?id="+this.DropDownList1.SelectIndex+"&id1="+...+"’)</script>")
接收参数:
string a = Request.QueryString("id");
string b = Request.QueryString("id1");
2.为按钮添加对话框
Button1 ......
Asp.Net中有一套与用户相关联的属性设置,可以通过在WebConfig里配置来直接使用,他的作用为
存储和使用唯一与用户对应的信息
展现个人化版本的Web应用程序
用户的唯一身份标识在再次访问时识别用户
Asp.Net Profile提供的跟用户相关的类型都是强类型
首先生成数据库脚本,使用Visual Studio 2005 命令提示,输入 ......
"服务器名称:"+Server.MachineName;//服务器名称
"服务器IP地址:" + Request.ServerVariables["LOCAL_ADDR"];//服务器IP地址
&nbs ......
@Register : Register a user control or class with alias to this page.
@Import: Import a namespace.
@Reference: Link user controls or other page to complile current page. 支持数据跨页面的传送
页面事件:PreInit(创建服务器控件), Init(初始化服务器控件的状态), InitComplete,PreLoad, Load, Lo ......