黑马程序员_学习日记73_725ASP.NET(禁用Cookie、ASP.NET中的重要对象、JavaScript实现AJAX、两种Json格式的序列化方法、JQuery中实现ajax的五种方法)

一、禁用Cookie
禁用cookie
<sessionState cookieless=”true”>
</sessionState>
在webconfig中禁用了cookie,session还可以使用,sessionId通过url传递。
如果在浏览器中禁用cookie,这时session每次都是新建,相当于一个新的对话

二、ASP.NET中的重要对象
 
Application对象可以存储应用程序级的数据。
第一个用户访问站点时,应用程序启动,并创建一个Application对象,创建成功后,整个应用程序都可以使用。

三、AJAX编程技术
Asynchronous JavaScript and XML
中文:异步JavaScript和XML
指一种创建交互式网页应用的网页开发技术。
不是指一种单一的技术,而是有机地利用了一系列相关的技术
AJAX本质是浏览器技术,主要目的局部交换客户端及服务端间的数据

四、JavaScript实现AJAX

$(function () {
$("#btnGetDate").click(function () {
    var xhr;
    //1、创建异步请求的核心对象
    if (XMLHttpRequest) {
        xhr = new XMLHttpRequest();
    }
    //2、设置请求对象跟后台哪个页面交互
    xhr.open("Get", "ProcessAjax.ashx?p=33", true);
    //3、发送请求
    xhr.send();
    //4、后台返回数据后会调用此方法
    xhr.onreadystatechange = function () {
        //“4”表示前台已经接受了后台的响应报文
        if (xhr.readyState == 4) {
            alert(xhr.responseText);
        }
    };
})
});

其中
异步对象的readyState属性指出了XMLHttpRequest对象在发送/接收数据过程中所处的几个状态。XMLHttpRequest对象会经历5种不同的状态:
0:未初始化,new完后。
1:已打开。对象已经创建并初始化,但还未调用send方法
2:已发送。已调用send方法,但该对象正在等待状态码和头的返回
3:正在接收。已经接收了部分数据,但还不能使用该对象的属性和方法,因为对象的状态和响应头不完整。
4:已加载。所有数据接收完毕

五、两种Json格式的序列化方法
public void ProcessRequest (HttpContext context) {
    context.Response.ContentType = "text/plain";


    List<CityInfo> cities = new List<CityInfo>()
    {
        new CityInfo(){CityId = 1,CityName = "潍坊"},
        new CityInfo(){CityId = 2,CityName = "青岛"},
        new CityInfo(){CityId = 3,CityName = "济南"},
        new CityInfo(){CityId = 4,CityName = "东营"},
        new CityInfo(){CityId = 5,CityName = "烟台"}
    };
    //第一种方式:拼接Json字符串
    //StringBuilder sb = new StringBuilder();
    //sb.Append("[");
    //foreach (var cityInfo in cities)
    //{
    //    sb.Append("{");//"{"大概是特殊字符
    //    sb.AppendFormat("\"CityId\":\"{0}\",\"CityName\":\"{1}\"",cityInfo.CityId,cityInfo.CityName);
    //    sb.Append("},");
    //}
    //string str = sb.ToString().TrimEnd(',');
    //str += "]";
    //context.Response.Write(str);
        
    //--------------------------------------------------------------------------
    //第二种方式:将对象序列化为Json格式
    JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer();
    string json = javaScriptSerializer.Serialize(cities);
    context.Response.Write(json);
}

第二种方法要添加引用Extensions程序集
 
第二种序列化的方式:如果对象之间有循环依赖,则会出现问题。

六、Jquery中实现ajax的五种方法:
<head>
    <title></title>
    <script src="../Scripts/jquery-1.4.1.js" type="text/javascript"></script>
    <script type="text/javascript">
        $(function () {
            $("#btnGetJson").click(function () {
                $.getJSON("ResponseJson.ashx", "a=3&b=4", function (data) {
                    alert(data[1].CityName);
                });
            });


            $("#btnJQGet").click(function () {
                $.get("ResponseJson.ashx", "dd=33", function (data) {
                    alert(data);
                });
            });


            $("#btnJQPost").click(function () {
                $.post("ResponseJson.ashx", { d: 33, demo: "shit" }, function (data) {
                    alert(data[0].CityName);
                }, "json");
            });


            $("#btnAjax").click(function () {
                $.ajax({
                    url: "ResponseJson.ashx",
                    data: "a=3&b=4",
                    type: "Post",
                    success: function (data) {
                        alert(data);
                    },
                    error: function () {
                        alert("错误!");
                    }
                });
            });


            $("#btnLoad").click(function () {
                $("#divDemo").load("ResponseJson.ashx", { id: 333 }, function (data) {
                    alert(data);
                });
            });
        });
    </script>
</head>
<body>
    <input type="button" value="JQ GetJson" id="btnGetJson" />
    <input type="button" value="JQ Get" id="btnJQGet" />
    <input type="button" value="JQ Post" id="btnJQPost" />
    <input type="button" value="JQ ajax" id="btnAjax" />
    <input type="button" value="JQ load" id="btnLoad" />
    <div id="divDemo"></div>
</body>

小知识点:
HttpModule是HttpApplication实例在Init()方法中初始化绑定的事件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值