Asp.net-知识总结(5)

来源:互联网 发布:api接口程序源码 编辑:程序博客网 时间:2024/05/25 16:39

1.回顾:上篇学习了 一般处理程序 上传图片


2.asp.net控件,页面/控件缓存

(1).asp.net控件

   大多数应用于后台操作和系统操作,在使用的时候,需要多加练习,多查,从而了解控件的属性和事件的使用。

(2).缓存机制

    1。页面缓存和控件缓存的区别:

1.1页面缓存是保存的被请求页面对象执行后生成的html代码。

     控件缓存是保存的数据源控件上次查询到的 数据集合(List<Classes>list)

 

 来执行生成html代码了,而是直接从缓存里获上次生成的HTML代码

      控件缓存一旦使用,那么不管缓存有没有失效,服务器都会为每个浏览器请求创建页面类对象并执行生成Html代码。只不过,在运行页面对象的过程中,当发现数据源控件已经缓存了上次查询的结果数据,就不再调用数据源绑定的方法来获得数据,而是直接从缓存中获上次查询的数据。

 

2.1绝对过期时间:是指定一个确切的时间点,过了,缓存就自动清空。

2.2相对过期时间:是指定一个确切的时间戳(如:15秒),那么页面在15秒内被任何一个浏览器访问,缓存失效时间都会更新回15秒并重新倒数计时。一旦15秒内没有任何访问,那么服务器就会清空该缓存。

(3)页面缓存的代码实现

1.在页面上加上一下代码

<%@ OutPutCache Duration=”15”(时间) VaryByParam=”none” (参数,当为id时就写id,很多的时候可以用* 代替)%>


 

2.服务器端代码实现缓存

 想Sission/Cookie 类似,使用Catch 关键字

 Cache[“key”]=value; Cache.add()


3.Session(外加),过滤器,全局文件,简单工厂模式

(1)  进程外Session

1)  Session默认将数据保存在辅助进程中,但是在辅助进程(aspnet_wp.exe)中,不能存储大量的数据,如果存储的多的话,辅助进程将重启,保存的数据将丢失。

2)  Session将数据保存在另一个进程中(aspnet_state.exe),这时需要在配置文件(web.config)中添加下面配置:

<system.web>   <sessionState mode=”StateServer” stateConnectionString=”tcpip=xxxx(ip或者域名):42424”/></system.web>


注意这里端口必须为42424

3)  第三种是SqlServer: 既是将数据存储在了sqlServer中,则需要新建ASPState数据库使用运行Session数据库脚本:

  临时存储区:installSqlStatesql &UninstateSqlState.sql

 注意:之后配置数据库权限麻烦的话,可以在运行完aspnet_regsql.exe后再数据库中执行你想要使用的sql脚本,就可以不配置权限了。

(2).过滤器

    

 新建一个类:继承IHttpModule      简单使用如下:      public class FirsModule:IHttpModule      {        public void Init(HttpApplicationhttpApplication)        {            //为请求管道的第一个事件,也就是名为BeginRequest的事件注册一个用户定义的方法            httpApplication.BeginRequest +=MyBeginRequest;        }         protected void MyBeginRequest(objectsender, EventArgs e)        {            HttpContext contex = (sender asHttpApplication).Context;            contex.Response.Write("哈哈哈哈哈");        }          public void Dispose()        {        }      }

 

(1)      全局应用类

全局应用类,添加的时候,必须是Global.asax,不能改变为其他的名称。

如下代码所示,调用的时候,需要那个写那个。

voidApplication_Start(object sender, EventArgs e)    {        // 在应用程序启动时运行的代码     }       void Application_End(object sender,EventArgs e)    {        //  在应用程序关闭时运行的代码     }           void Application_Error(object sender,EventArgs e)    {        // 在出现未处理的错误时运行的代码     }     void Session_Start(object sender, EventArgs e)    {        // 在新会话启动时运行的代码     }     void Session_End(object sender, EventArgs e)    {        // 在会话结束时运行的代码。        // 注意:只有在 Web.config 文件中的sessionstate 模式设置为        // InProc 时,才会引发 Session_End 事件。如果会话模式设置为 StateServer        // 或SQLServer,则不引发该事件。 } 


(4).简单工厂模式(相互“引用”如下)

 

表现层-业务层-工厂层-数据接口层-数据层-模型层

表现层添加:业务层,模型层

业务层添加:工厂层,接口层,模型层

工厂层添加:模型层,接口层,数据层

数据层:接口层,模型层

接口层:模型层

 

5.文本编辑器

Ckediter

 

Tqediter

 :调用代码

     <textarea name="content" cols="80" rows="16" id="content">

        </textarea>

  <script type="text/javascript">

              newTQEditor("content");

   </script>

0 0
原创粉丝点击