嘿嘿,今天学习的有点迷茫哦,主要学习把验证码使用在登录页面时间的一些逻辑,学习这个时间并没有那么的迷惑哦,可是自己写程序时间倒是有点反应迟钝,不过还好总是在最后搞清楚啦,另外就是一步一步的学习是接近项目期,今天下午学习了ajax,这个使用javascript写起来还是蛮麻烦的,嘿嘿,但是使用jquery实现是非常的简单的,不知道是不是由于我刚接触的原因,下面来总结一下今天学习的内容,感觉今天学习的还是很有必要详细总结的,因为在以后的项目中还是经常会使用的。

一.状态保持

1.cookie的添加与删除

//HttpCookie cookie = new HttpCookie("cookietext", context); //创建cookie,它是键值对的形式存在
//cookie.Expires = DateTime.Now.AddDays(7); //给他一个时间7天,可以是7小时或者7分钟
//Response.Cookies.Add(cookie); //添加cookie,记得使用的是Response对象,而不是Request
 //HttpCookie cookie = Request.Cookies["cookietext"]; //获取cookie
//if (cookie != null) //当存在cookie时间
//{
// this.span.InnerHtml = "<a href=''>" + cookie.Value + "</a>&nbsp&nbsp&nbsp<a href='DelCookie.aspx'>退出</a>";//创建了一个退出的连接
//}
 //HttpCookie cookie = Request.Cookies["cookietext"];   //获取cookie
//if (cookie != null)
//{
// cookie.Expires = DateTime.Now.AddDays(-1); //这里是让cookie过期,即不存在cookie,即退出
// //Request.Cookies.Clear(); //这里是使用clear方法清除cookie
// Request.Cookies.Add(cookie);
// Response.RedirectPermanent("fmLogin.aspx");
//}

表单是和页面相关的,只有浏览器端提交了这些数据,服务器端才能得到。而有时候希望在服务端任意的地方存取一些和访问者相关的信息,这时候就不方便将这些信息保存到表单中了,因为如果那样的话必须随时注意在所有页面表单中都保存这些信息。Cookie是和站点相关的,并且每次向服务器请求的时候除了发送表单参数外,还会将和站点相关的所有Cookie都提交给服务器,是强制性的。Cookie也是保存在浏览器端的,而且浏览器会在每次请求的时候都会把和这个站点的相关的Cookie提交到服务器,并且将服务端返回的Cookie更新到硬盘,因此可以将信息保存在Cookie中,然后在服务器端读取、修改。服务器返回数据除了普通的html数据以外,还会返回修改的Cookie,浏览器把拿到的Cookie值更新本地浏览器的Cookie就可以。哪怕请求jpg、js、css这种文件也会带着Cookie,因为服务器端可能要进行Session的操作,比如判断是否登录。互联网优化的案例:图片服务器和主站域名不一样,降低Cookie流量的传输。Cookie的缺点和表单一样,而且还不能存储过多信息。客户端、服务器端设置的Cookie双方都能读。
                  2.session的添加与删除

Session["name"] = context;              //创建一个session,他也是以键值对的形式存在
if (Session["name"] != null)
{
string cotext = Session["name"].ToString();
this.span.InnerHtml = "<a href=''>" + cotext + "</a>&nbsp&nbsp&nbsp<a href='DelCookie.aspx'>退出</a>";//创建了一个退出的连接
}
Session.Clear();
Response.RedirectPermanent("fmLogin.aspx");

Session提供了一种把信息保存在服务器内存中的一种方式。它能存储任何数据类型包括自定义对象,每个客户端的Session是独立存储,Session 对象用于存储有关用户的信息,在整个用户会话过程中都会保留此信息,(保存SessionId的cookie丢失之前)。当用户在应用程序中从一个网页浏览到另一个网页时,存储在 Session 对象中的变量不会被丢弃。Session只可由该会话的用户访问(因为SessionId的东东以cookie的方式保存访问者浏览器的缓存里了)用户不能访问或修改他人的Session。
                   3.ViewState的使用

ViewState["myKey"] = "MyData";   //用户数据保存方式
string myData = string.Empty; //读取数据方式
if (ViewState["myKey"] != null)
{
myData = (string)ViewState["myKey"];
}

两种使用方式: 作用域---页面级

注意:<1>.ViewState不能存储所有的数据类型,仅支持可序列化对象;

<2>.非单值服务器控件的状态也自动保存在ViewState中,例如:下拉框(文本框是单值控件,所以不会保存在ViewState中),使用ViewState的前提;页面上必须有一个服务器端窗体标记(<form runat=“server”>),服务器在接收到用户请求一个页面后,会自动在请求报文中找看是否包含__VIEWSTATE的隐藏域,如果有,则将中间的值解码后添加到页面的ViewState属性中;服务器在输出的时候,也会自动的将ViewState中的值添加到表单里名叫__VIEWSTATE的隐藏域中 VIEWSTATE适用于同一个页面在不关闭的情况下多次与服务器交互。

禁用ViewState的方法,禁用单个控件的ViewState设定enableviewstate=false,禁用ViewState以后TextBox版本不受影响,Div版本受影响,因为input的value不依靠ViewState。禁用整个页面的,在aspx的Page指令区加上EnableViewState="false" 。内网系统、互联网的后台可以尽情的用ViewState。当某些控件的某些属性不属于浏览器表单的提交范围时,fw将会把这些属性添加到ViewState中保存。WebForm的IsPostBack依赖于__ViewState。

4.Application的对象

Application对象可以存储应用程序级的数据;“Application”:应用程序,第一个用户访问站点时,应用程序启动,并创建一个Application对象,创建成功后,整个应用程序中都可以使用该对象,除非应用程序关闭,否则对象一直存储在内存中。

二.AJAX的初步学习

<form id="frm" action="" method="post">
<table id="tab" border="">
<tr><td>用户名:</td><td><input type="text" name="txtname" id="txtname" /></td><td><label id="errormsg"></label></td></tr>
<tr><td>密码:</td><td><input type="password" name="txtpwd" id="txtpwd" /></td><td><label id="pwderrormsg"></label></td></tr>
<tr><td colspan="" style="text-align:center"><input type="submit" name="name" value="注册 " /></td></tr>
</table>
</form>
 $("#txtname").blur(function () {
var name = $(this).val();
$.post("Register.ashx", { n: name }, function (msg) {
$("#errormsg").text(msg);
})
})
string name = context.Request.Form["n"];
if (!string.IsNullOrEmpty(name))
{
if (bll.CheckNameMess(name))
{
context.Response.Write("用户名已存在");
}
else
{
context.Response.Write("用户名可用");
}
}

上面就是一个以注册用户名为例学习一下ajax,其实上面的ajax就是在jquery中使用的,$.get/post(导向的地址,属性值,函数)即可实现。Ajax在本质上是一个浏览器端的技术,Ajax技术之主要目的在于局部交换客户端及服务器间之数据,这个技术的主角XMLHttpRequest的最主要特点,在于能够不用重新载入整个版面来更新资料,也就是所谓的Refresh without Reload(轻刷新)与服务器之间的沟通,完全是透过Javascript来实行,使用XMLHttpRequest本身传送的数据量很小,所以反应会更快,也就让网络程式更像一个桌面应用程序,AJAX 就是运用Javascript 在后台悄悄帮你去跟服务器要资料,最后再由Javascript 或DOM 来帮你呈现结果,因为所有动作都是由Javascript代劳,所以省去了网页重载的麻烦,使用者也感受不到等待的痛苦。使用XMLHttpRequest对象  按照下面模式,可以同步地XMLHttpRequest对象:创建对象;-new创建请求; -open()发送请求;-send(),但是使用javascript比较麻烦,于是就改变为了jquery的使用方法。

嘿嘿,今天就写到这里,ajax还是我们学习的重点,要好好学习的,加油加油!!!

状态保持以及AJAX的初步学习的更多相关文章

  1. Git的初步学习

    前言 感谢! 承蒙关照~ Git的初步学习 为什么要用Git和Github呢?它们的出现是为了用于提交项目和存储项目的,是一种很方便的项目管理软件和网址地址. 接下来看看,一家公司的基本流程图: 集中 ...

  2. 初步学习pg_control文件之十二

    接前问,初步学习pg_control文件之十一,再来看下面这个 XLogRecPtr minRecoveryPoint; 看其注释: * minRecoveryPoint is updated to ...

  3. 初步学习pg_control文件之九

    接前文,初步学习pg_control文件之八 来看这个: pg_time_t time; /* time stamp of last pg_control update */ 当初初始化的时候,是这样 ...

  4. 初步学习pg_control文件之六

    接前文:初步学习pg_control文件之五 ,DB_IN_ARCHIVE_RECOVERY何时出现? 看代码:如果recovery.conf文件存在,则返回 InArchiveRecovery = ...

  5. 初步学习pg_control文件之五

    接前文 初步学习pg_control文件之四,继续看何时出现  DB_IN_CRASH_RECOVERY: 看下面代码就比较清楚了:如果对 InArchiveRecovery 判断值为假,而且 读取出 ...

  6. 初步学习pg_control文件之四

    接前文,初步学习pg_control文件之三  继续分析 何时出现 DB_SHUTDOWNING状态: 在正常的shutdown的时候,需要进行checkpoint,所以就在此处,设置pg_contr ...

  7. 初步学习pg_control文件之三

    接前文,初步学习pg_control文件之二 继续学习: 研究 DBState,先研究 DB_IN_PRODUCTION ,看它如何出现: 它出现在启动Postmaster时运行的函数处: /* * ...

  8. React初步学习-利用React构建个人博客

    React初步学习-利用React构建个人博客 用React和Webpack写了一个很简单的个人博客,主要是想要熟悉一下react中各种基本基本属性及方法的使用.在构建过程中碰到不少问题,通过阅读官方 ...

  9. 第十九篇 jQuery初步学习

    jQuery 初步学习   jQuery可以理解为是一种脚本,需要到网上下载,它是一个文件,后缀当然是js的文件,它里面封装了很多函数方法,我们直接调用即可,就比方说,我们用JS,写一个显示与隐藏,通 ...

随机推荐

  1. Linux操作系统的安装

    一.介绍 目的:通过本文了解并掌握Linux系统安装的过程 软件环境 Linux系统:CentOS7.3 虚拟机:VM12 主机系统:Windows8.0 二.安装虚拟机 首先,需要下载VMware ...

  2. 第三百三十三节,web爬虫讲解2—Scrapy框架爬虫—Scrapy模拟浏览器登录—获取Scrapy框架Cookies

    第三百三十三节,web爬虫讲解2—Scrapy框架爬虫—Scrapy模拟浏览器登录 模拟浏览器登录 start_requests()方法,可以返回一个请求给爬虫的起始网站,这个返回的请求相当于star ...

  3. JUnit4 基本用法实例

    本教程介绍了在JUnit4中支持的基本注解. import org.junit.*; import static org.junit.Assert.*; import java.util.*; /** ...

  4. 嵌入式开发之makefile---交叉编译静态库和动态库的生成和调用

    c和cpp 混合的动态库生成: $(LIBSO): $(COBJS) $(CPPOBJS) $(CPP) -shared -o $@ $^ $(LIBS) ////////////////////// ...

  5. Saltstack配置管理

    制作简单初始化模块(在minion主机安装软件): 1.定义master配置文件file_roots [root@localhost~]# cat /etc/salt/master file_root ...

  6. 微信小程序开发1_资料收集

    [前言] 小程序 [一.资料] 微信官网 开发文档.工具 等 https://mp.weixin.qq.com/cgi-bin/wx [二] 创建小程序和编辑代码,先安装 开发者工具 ,根据所使用的操 ...

  7. jQuery/CSS3类似阿里巴巴的商品导航菜单实现教程

    有两天没发表文章了,今天来说说利用jQuery和CSS3制作一款类似阿里巴巴左侧商品菜单导航,这款菜单看起来非常大气,可以展示非常多的产品类目,如果你在设计电子商务网站,不妨可以拿来参考,一下是效果图 ...

  8. 小程序笔记三:幻灯片swiper 和图片自定义高度

    滑动组件:scroll-view wxml代码 <view> <scroll-view scroll-x="true" class="tab-h&quo ...

  9. 【.NET】正则表达式笔记

    很早就听说正则表达式的强大,今天终于一睹它的真容,在这里记下学习时候的笔记,以便以后查看 1.正则表达式 用于描述字符串规则的的特殊的字符(正则表达式本身是字符串,用来描述字符串的相关规则,用于与其他 ...

  10. UNIX环境编程学习笔记(26)——多线程编程(一):创建和终止线程

    lienhua342014-11-08 在进程控制三部曲中我们学习了进程的创建.终止以及获取终止状态等的进程控制原语.线程的控制与进程的控制有相似之处,在表 1中我们列出了进程和线程相对应的控制原语. ...