zoukankan      html  css  js  c++  java
  • Web编程基础(2)


    在ASP.NET 2.0中, Button控件有个新属性PostbackUrl, 定义了应从web服务器上请求的页面.
    在.NET 2.0中, Page类有一个新属性PreviousPage, 返回一个page对象, 这个对象的控件可以使用FindControl()方法来访问, 返回一个Control对象.
    服务器控件:......
    验证控件:.....(记得设置Control To Validate 属性).

    状态管理:
    使用客户端的状态, 其缺点是在于增加了数据在网络之间的传送. 使用服务器端状态的缺点在于, 服务器必须给其客户端分配资源.
    客户端的状态管理:
    ViewState
    : 是一个隐藏字段, 它会同页面的内容一起发送给浏览器. 当把页面发送给客户端时, ViewState包含与窗体中控件相同的值. 给服务器回送时, ViewState也会同控件的新值一起发送给服务器. 这样它就可以验证值是否改变, 并调用事件处理程序.
    Web服务器控件自动使用ViewState来使事件工作.  
    使用ViewState的缺点是, 数据总要从服务器传送给客户端, 再从客户端传送给服务器, 增加了网络流量. 为了减少网络流量, 可以关闭ViewState.
    在Page指令中, 把EnableViewState属性设置为False, 就可以关闭页面中所有控件的ViewState.
    设置一个控件的EnableViewState属性, 也可以配置该控件的ViewState.
    还可以把定制的数据存储在ViewState中.
    ViewState只能保存在一个页面中. 如果状态应保存在多个不同的页面中, 就应使用Cookie在客户端保存状态.
    Cookie:cookie在HTTP的头中定义. 使用HttpResponse类可以把Cookie发送给客户端.
    Response是Page类的一个属性, 它返回一个HttpResponse类型的对象.
    把Cookie发送给客户端:
    Code
    如果只需要返回一个cookie的值, 就可以使用Value属性. 如果要发送多个cookie的值,最好把值添加到一个Cookie中,而不是使用多个cookie.
    从客户端读取Cookie:
            HttpCookie cookie=Request.Cookies["mycookie"];
            
    string myval=cookie.Values["mystate"];
    要在ASP.NET页面中读取cookie, 可以访问HttpRequest对象中的cookie集合.
    服务器端的状态管理:
    Session:
    会话状态与浏览器会话相关. 客户在服务器上第一次打开ASP.NET页面时, 会话就开始了. 当客户在20分钟之内没有访问服务器时, 会话结束.
    可以在Global Application类中定义自己的代码, 在会话开始或结束时运行.
    创建 Global Application 类: WebSite|Add New Item|Global Application Class.  文件中定义了一些事件处理例程.
    会话状态可以存储在HttpSessionState对象中.
    与当前HTTP环境相关的会话状态对象可以使用Page类的Session属性来访问.
    在Session_Start()事件处理程序中, 初始化会话变量:
        void Session_Start(object sender, EventArgs e) 
        
    {
            
    // 在新会话启动时运行的代码
            Session["mydate"]=0;
        }
    通过Session属性读取会话状态:
    Code
    Application: 如果数据应在多个客户端共享, 就可以使用应用程序状态. 应用程序状态的使用方式与会话状态非常类似.
    对于应用程序状态, 应使用 HttpApplicationState类, 通过Page类的Application属性可以访问它.
    例如: 在启动Web应用程序时, 初始化应用程序变量usercount:
        void Application_Start(object sender, EventArgs e) 
        
    {
            
    // 在应用程序启动时运行的代码
            Application["usercount"]=0;
        }
    读取应用程序状态中的数据:
            Label1.Text = Application["usercount"].ToString();
    Cache:高速缓存类似于应用程序状态, 因为它在所有的客户端上共享.
    高速缓存和应用程序状态的区别是: 高速缓存要灵活的多, 定义状态何时失效有许多方式.
    我们不是给每个请求读取文件或数据库, 而是把数据存储在高速缓存中.
    对于高速缓存, 需要使用System.Web.Caching命名空间和Cache类.
    利用Cache类的Add()方法可以把任意对象赋予高速缓存.
    Cache.Add("mycache", myobj, null, DateTime.MaxValue, TimeSpan.FromMinutes(10), CacheItemPriority.Normal, null);
    第一个参数: 高速缓存项的名称
    第二个参数: 应高速缓存的对象
    第三个参数: 依赖关系
    第四个参数: 高速缓存项失效的绝对时间
    第五个参数: 高速缓存项失效的相对时间
    第六个参数: 高速缓存的优先级
    第七个参数: 定义一个方法, 在删除高速缓存项时调用该方法.

    先大致了解一下, 留点印象, 在用到的时候, 再学习.
  • 相关阅读:
    Haskell Types与Typeclasses
    Haskell Tuple相关总结
    Haskell List相关操作
    Emacs 常用快捷键
    Emacs 参考资料
    Haskell Platform (windows)
    生成zip压缩包
    递归复制一个文件
    写表格
    读表格
  • 原文地址:https://www.cnblogs.com/niuniu1985/p/1562099.html
Copyright © 2011-2022 走看看