zoukankan      html  css  js  c++  java
  • Session、Cookie、Application、ViewState和Cache 这四者的区别

     目录 

    只有明确这几个对象,才能很好的应用于Asp.Net开发,才能更好的优化与存储数据。

    通过以上对比,应该明白的差不多了,下面再详细介绍每个对象的用途

    viewstate 

     viewstate的值保存在浏览器的html代码中 , 当浏览器关闭 , 则值消失 , 即viewstate是在本页面之内各函数间进行传值的 , 至于为什么要使用这种方法 , 因为在一个事件发生之后 , 页面可能会刷新 , 如果定义全局变量会被清零 , 所以要使用 viewstate.

     在页面上存储客户端的信息

    所有Web服务器控制都使用ViewState在页面回发期间保存自已的信息状态,如果某个控件不需要在回发期间保存信息,最好将其ViewState属性关闭,(看一下控制的属性面板),避免不必要的资源浪费。通过设置页面的"EnableViewState=false"可以禁用整个页面的ViewState。

    ViewState容器可以保存大量的数据,但是必须谨慎使用,因为过多使用会影响性能,最明显的就是网页打开速度慢

    session

    Session采用键值对 , 也就是说ID存放客户端 , 而值放在服务器端 , 是通过用户的ID去找服务器上对应的值 , 这种方式值放置在服务器端 ,有个时间限制 ,时间到则服务器自动释放.

    存储的是客户端和服务器之间的会话

    用于保存每个用户的专用信息,它的生存期是用户持续请求时间再加上一段时间(可以在web.config中设置,默认是20分钟)。

    Session中的信息保存在服务器的内存中,当然你也可以设置它的保存方法(如存在SQL数据库中)。由于用户停止使用程序后它仍然在内存中保持一段时间,因此使用Session对象保存用户数据的方法效率很低。对于小量的数据。使用Session还是一个不错的选择。

    cookie

    Cookies则有两种方法 , 一种方法是把值保存在浏览器的变量中 , 当浏览器关闭时结束 , 另一种方法是保存在硬盘中 , 只要时间不过期 , 下次还可使用.

    于保存客户浏览器请求服务器页面的请求信息,程序员也可以用它保存非敏感性的内容

    如果将Cookie设置为Min Value,则表示它永不过期。

    Cookie存储量受到很大限制,一般浏览器支持最大容量为4096字节。因此不能用来存储大量数据。

    由于并非所有浏览器都支持Cookie,并且它是以明文方式保存的,所以最好不要保存敏感性的内容。否则会影响网络安全。

    Application

    用于保存所有用户共用的数据信息,如果被保存的数据在应用程序生存期内根本不会改变或很少改变,用它。但是在asp.net中有个web.config,可能更好点。

    如果要使用application,一个需要考虑的问题是任何写操作都有要在application_onstart事件中(Global.asax)中完成。

    尽管使用application.lock和application.unlock方法来避免操作的同步,但是它串行化了对application的请求,当网站访问量大时会造成性能瓶颈。

    因此最好不要用它存取大的数据集。

    Cache

    用于在Http请求间保存页面和数据。它允许将频繁访问的大量服务器资源存储在内存中,当用户发出相同的请求时服务器不再次处理而是将Cache中保存的信息返回给用户,节省了服务器处理请求时间。

    备注: ViewState是维护页面状态的 Application是维护Web应用程序状态的,整个Web应用程序(站点/虚拟目录)只有一个 Session是维护会话状态的,每个客户有一个

    参考资源:

    http://topic.csdn.net/t/20041028/08/3497971.html

    http://www.cnblogs.com/3stones/archive/2007/03/16/676833.html

    http://zhidao.baidu.com/question/40138645

    http://blog.sina.com.cn/s/blog_5d96a10d0100bikp.html

    http://hi.bccn.net/space-301836-do-blog-id-14009.html

    http://www.lslnet.com/linux/docs/linux-4141.htm

    http://www.360doc.com/content/09/0403/17/32573_3011834.shtml

  • 相关阅读:
    电脑桌面图标不显示图案变成白色图标该怎么办?
    行动上的巨人养成指南
    荣耀MagicBook Pro 2020款对比2019款做了哪些升级
    P8 function template ,函数模板
    MATLAB中imfill()函数
    MagicBook Pro 2020锐龙版
    P7. class template, 类模板,模板类
    6. namespace经验谈
    macbook pro2020参数
    MATLAB取整
  • 原文地址:https://www.cnblogs.com/Fengger/p/2600075.html
Copyright © 2011-2022 走看看