状态保持以及AJAX的初步学习
嘿嘿,今天学习的有点迷茫哦,主要学习把验证码使用在登录页面时间的一些逻辑,学习这个时间并没有那么的迷惑哦,可是自己写程序时间倒是有点反应迟钝,不过还好总是在最后搞清楚啦,另外就是一步一步的学习是接近项目期,今天下午学习了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>   <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>   <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的初步学习的更多相关文章
- Git的初步学习
前言 感谢! 承蒙关照~ Git的初步学习 为什么要用Git和Github呢?它们的出现是为了用于提交项目和存储项目的,是一种很方便的项目管理软件和网址地址. 接下来看看,一家公司的基本流程图: 集中 ...
- 初步学习pg_control文件之十二
接前问,初步学习pg_control文件之十一,再来看下面这个 XLogRecPtr minRecoveryPoint; 看其注释: * minRecoveryPoint is updated to ...
- 初步学习pg_control文件之九
接前文,初步学习pg_control文件之八 来看这个: pg_time_t time; /* time stamp of last pg_control update */ 当初初始化的时候,是这样 ...
- 初步学习pg_control文件之六
接前文:初步学习pg_control文件之五 ,DB_IN_ARCHIVE_RECOVERY何时出现? 看代码:如果recovery.conf文件存在,则返回 InArchiveRecovery = ...
- 初步学习pg_control文件之五
接前文 初步学习pg_control文件之四,继续看何时出现 DB_IN_CRASH_RECOVERY: 看下面代码就比较清楚了:如果对 InArchiveRecovery 判断值为假,而且 读取出 ...
- 初步学习pg_control文件之四
接前文,初步学习pg_control文件之三 继续分析 何时出现 DB_SHUTDOWNING状态: 在正常的shutdown的时候,需要进行checkpoint,所以就在此处,设置pg_contr ...
- 初步学习pg_control文件之三
接前文,初步学习pg_control文件之二 继续学习: 研究 DBState,先研究 DB_IN_PRODUCTION ,看它如何出现: 它出现在启动Postmaster时运行的函数处: /* * ...
- React初步学习-利用React构建个人博客
React初步学习-利用React构建个人博客 用React和Webpack写了一个很简单的个人博客,主要是想要熟悉一下react中各种基本基本属性及方法的使用.在构建过程中碰到不少问题,通过阅读官方 ...
- 第十九篇 jQuery初步学习
jQuery 初步学习 jQuery可以理解为是一种脚本,需要到网上下载,它是一个文件,后缀当然是js的文件,它里面封装了很多函数方法,我们直接调用即可,就比方说,我们用JS,写一个显示与隐藏,通 ...
随机推荐
- python 百度图片爬虫
# -*- coding:utf-8 -*- #https://blog.csdn.net/qq_32166627/article/details/60882964 import requests i ...
- 利用函数或映射进行数据转换 (map)
先来看个数据 df = DataFrame({"food":["bacon", "pulled pork", "bacon&quo ...
- Unity入门教程(下)
一.概要 在 Unity入门教程(上) 中我们创建了一个游戏项目,并且创建了玩家角色和小球这些游戏对象,还通过添加游戏脚本实现了小方块的弹跳.虽然功能比较简单,但是完整地表现了使用Unity开发游戏的 ...
- OpenGL光照设置
一.设置光源 (1)光源的种类 环境光 环境光是一种无处不在的光.环境光源放出的光线被认为来自任何方向.因此,当你仅为场景指定环境光时,所有的物体无论法向量如何,都将表现为同样的明暗程度. 点光源 由 ...
- MySql 存储过程总结
MySql 存储过程 -- ---------------------------- -- Procedure structure for `proc_adder` -- -------------- ...
- Spring Boot 8080端口被占用抛出异常
问题: SpringBoot------8080端口被占用抛出异常 解决: 进到项目下这两个文件,添加“server.port=8888”即可
- interpro 数据库
interpro 通过整合多个蛋白相关的数据库,提供了一个方便的对蛋白序列进行功能注释的平台,功能注释的内容包括蛋白质家族预测,domain 和 结合位点预测 interoro 在整合多个数据库的同时 ...
- C# byte[]保存成文件
string path = Server.MapPath(@"\a.pdf"); FileStream fs = new FileStream(path, FileMode.Cre ...
- Spring Cloud 微服务的那点事
什么是微服务 微服务的概念源于2014年3月Martin Fowler所写的一篇文章“Microservices”. 微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调 ...
- 了解ASP.NET Core 依赖注入,看这篇就够了 于2017年11月6日由jesseliu发布
DI在.NET Core里面被提到了一个非常重要的位置, 这篇文章主要再给大家普及一下关于依赖注入的概念,身边有工作六七年的同事还个东西搞不清楚.另外再介绍一下.NET Core的DI实现以及对实例 ...