AJAX  是一种网页数据异步加载技术

通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

一、Json    

注意Json里面不可出现单引号,要用双引号转义。

xml   ---  可扩展的标记语言。

Json是一种跨语言的数据传递格式

Json对象格式:"{"key1":"value1","key2":"value2","key3":"value3"}"

注意:最后一个key:value后边不能加逗号

Json数组格式:"[{},{},{}]"

注意:数组格式最后一个Json对象后边也不能加逗号。每一个{}都是一个Json对象

二、ashx     一般处理程序

只有后台部分,用于数据处理。

只需要操作ProcessRequst这个方法里面的内容,如需引用命名空间,则在最顶部引用,其他内容不需要操作。

引Linq命名空间    using System.Linq;

引泛型集合命名空间     Using System.Collections.Generic;

引用StringBuilder的命名空间     Using System.Text;

所有的内置对象在ashx里都要通过context来点出来。

获取Json中传来的数据

string s =context.Requst["key"];

 

将返还数据拼成Json结构:

1、Json对象

string end="{\"has\":\"false\"}";

2、Json数组

StringBuilder str = new StringBuilder();

str.Append("[");

str.Append("{\"key1\":\"value1\",\"key2\":\"value2\",\"key3\":\"value3\"}");

str.Append("]");

public void ProcessRequest(HttpContext context)
{
StringBuilder str = new StringBuilder();
str.Append("["); using (DataClassesDataContext con = new DataClassesDataContext())
{
List<Users> ulist = con.Users.ToList();
int count = ;
foreach (Users u in ulist)
{
if (count > ) str.Append(",");
str.Append("{\"username\":\"" + u.UserName + "\",\"password\":\"" + u.PassWord + "\",\"nickname\":\"" + u.NickName + "\",\"sex\":\"" + u.Sex + "\",\"birthday\":\"" + u.Birthday + "\",\"nation\":\"" + u.Nation + "\"}");
count++;
}
} str.Append("]"); context.Response.Write(str);
context.Response.End();
}

Json返回数组结构

将要返回的Json数据返回出去

context.Response.Write(end);   或者   context.Response.Write(str);

context.Response.End();

 三、Ajax基本结构 (前台Js部分)

$.ajax({

url:"Insert.ashx",                      要提交到的服务端的相对路径。

type:"post",

data:{"key":"value"},                 key与服务端接受的key一致。

dataType:"json",

success:function(msg){               处理完毕的回调。()内一般写data或者msg,代表返还的Json数据对象,

alert(msg.has);                    通过这个对象可以点出对象对应的属性获取对应的值。

}

});

<script type="text/javascript">

    $("#txt1").keyup(function () {

        var s = $(this).val();    //取文本框的值

        if (s.length < ) {

            $("#txt1_msg").text("用户名不可以小于6位!");

            return;    //当文本框的值不够6位时,不进入AJAX
} $.ajax({
url: "Handler.ashx",
data: { "uname": s }, //提交的数据,(k:v) k 与例1对应
type: "post",
dataType: "json",
success: function (msg) {
if (msg.has == 'false') {
$("#txt1_msg").text("恭喜!用户名可用!");
$("#txt1_msg").css('color','green');
}
else {
$("#txt1_msg").text("用户名已被占用!");
$("#txt1_msg").css('color', 'red');
}
}
}); });

解析一个Json对象

解析Json数组来展示数据:

在前台html代码中

<table>

<thead>

<tr style="height: 50px; color: white; font-size: 20px; font-weight: bold;">
                   <td>编号</td>
                   <td>用户名</td>
                   <td>密码</td>
                   <td>昵称</td>
                   <td>性别</td>
                   <td>生日</td>
                   <td>民族</td>
                   <td>操作</td>
            </tr>

</thead>

<tbody id="tbody1">

</tbody>

</table>

function DataLoad() {
$.ajax({
url: "LoadData.ashx",
data: {},
type: "post",
dataType: "json",
success: function (msg) {
//先清空<tbody></tbody>里面的html代码
$("#tbody1").empty();
//循环创建行数据
for (var i = ; i < msg.length; i++) {
var str = "<tr style=\"background-color: white;\">";
str += "<td>" + msg[i].ids + "</td>";
str += "<td>" + msg[i].username + "</td>";
str += "<td>" + msg[i].password + "</td>";
str += "<td>" + msg[i].nickname + "</td>";
str += "<td>" + msg[i].sex + "</td>";
str += "<td>" + msg[i].birthday + "</td>";
str += "<td>" + msg[i].nation + "</td>";
str += "<td><input type=\"button\" class=\"btn_update\" name=\"" + msg[i].ids + "\" onclick=\"update(" + msg[i].ids + ")\" value=\"修改\"/>&nbsp;&nbsp;<input type=\"button\" name=\"" + msg[i].ids + "\" onclick=\"deletes(" + msg[i].ids + ")\" class=\"btn_delete\" value=\"删除\"/></td>";
str += "</tr>"; //将创建的行数据追加到<tbody></tbody>里
$("#tbody1").append(str);
}
} });
}

解析Json数组

【2017-06-05】Jquery.ajax的更多相关文章

  1. 【2017年新篇章】 .NET 面试题汇总(二)

    本次给大家介绍的是我收集以及自己个人保存一些.NET面试题第二篇 第一篇文章请到这里:[2017年新篇章] .NET 面试题汇总(一) 简介 此次包含的不止是.NET知识,也包含少许前端知识以及.ne ...

  2. 【2017山东day7】养猫

    [2017山东day7]养猫 Description 你养了一只猫,为了让它快乐地成长,你需要合理地安排它每天的作息时间.假设一天分为$ n \(个时刻,猫在每个时刻要么是吃东西,要么是睡觉.在第\) ...

  3. 【JavaScript】jQuery Ajax 实例 全解析

    jQuery确实是一个挺好的轻量级的JS框架,能帮助我们快速的开发JS应用,并在一定程度上改变了我们写JavaScript代码的习惯. 废话少说,直接进入正题,我们先来看一些简单的方法,这些方法都是对 ...

  4. 【转】JQuery.Ajax之错误调试帮助信息

    下面是Jquery中AJAX参数详细列表: 参数名 类型 描述 url String (默认: 当前页地址) 发送请求的地址. type String (默认: "GET") 请求 ...

  5. 【转】jQuery.ajax向后台传递数组问题

    $.ajax({ url: "/xxx", type: "GET", data: { "boxIds": boxIds, "box ...

  6. 【文件上传】jquery之ajaxfileupload异步上传插件

    来自:http://www.blogjava.net/sxyx2008/archive/2010/11/02/336826.html 由于项目需求,在处理文件上传时需要使用到文件的异步上传.这里使用J ...

  7. 【FreeRTOS学习05】深度解剖FreeRTOSConfig.h实现对系统的自定义剪裁

    ROM/RAM太小,因此要对系统进行剪裁: 相关文章 [FreeRTOS实战汇总]小白博主的RTOS学习实战快速进阶之路(持续更新) 文章目录 相关文章 1 系统的剪裁 2 FreeRTOSConfi ...

  8. 【原创经验分享】JQuery(Ajax)调用WCF服务

    最近在学习这个WCF,由于刚开始学 不久,发现网上的一些WCF教程都比较简单,感觉功能跟WebService没什么特别大的区别,但是看网上的介绍,就说WCF比WebService牛逼多少多少,反正我刚 ...

  9. 【初探移动前端开发05】jQuery Mobile (整合版)

    前言 为了方便大家看的方便,我这里将这几天的东西整合一下发出. 里面的例子请使用手机浏览器查看. 什么是jQuery Mobile? jquery mobile是jquery在移动设备上的版本,他是基 ...

  10. 【初探移动前端开发05】jQuery Mobile (下)

    前言 继续我们移动端的学习,今天到了List相关了. 本文例子请使用手机查看 List列表 在移动设备平台下,由于移动设备屏幕比较小,我们又是用手在上面点击的触屏方式,传统的列表模式在手机上就不太友好 ...

随机推荐

  1. angular ng-bind

    <body ng-app=""> <div ng-controller="firstController"> <input typ ...

  2. Android 代码库(自定义一套 Dialog通用提示框 )

          做Android开发五年了,期间做做停停(去做后台开发,服务器管理),当回来做Android的时候,发现很生疏,好些控件以前写得很顺手,现在好像忘记些什么了,总要打开这个项目,打开那个项目 ...

  3. linux重要的守护进程

    重要的守护进程 守护进程(Daemon)通常会随系统启动时激活并随系统关闭时停止,一直在系统后台中默默为用户提供服务: 守护进程名称 用处 crond 计划任务 dhcpd 动态IP地址分配服务(DH ...

  4. CSS背景图片常见属性设置

    在CSS中,图片属性的设置是必不可少的,下面介绍一下常见的图片属性: 1)背景图片插入:background-image:url(位置及名称);  //默认在父级元素内的左上角 2)背景平铺方式:ba ...

  5. 开发Angular库的简单指导(译)

    1. 最近工作上用到Angular,需要查阅一些英文资料,虽然英文非常烂,但是种种原因又不得不硬着头皮上,只是每次看英文都很费力,因此决定将一些比较重要的特别是需要反复阅读的资料翻译一下,以节约再次阅 ...

  6. 尚学堂Java第一课

    今天是北京尚学堂郑州分校开课的第一天,小班面授教学. 我很兴奋,是一个小白对IT大神渴求传道授业解惑的兴奋. 杨老师还是一贯耐心详细的手敲了第一堂课的完整大纲,必须给杨老师赞赞赞!!! 从幽默的制定班 ...

  7. 使用webpack打包css和js

    1.安装webpack. npm install webpack -g 2.创建一个文件夹app. 3.新建文件test.js. require("!style-loader!css-loa ...

  8. 进程间通信系列 之 命名管道FIFO及其应用实例

    进程间通信系列 之 概述与对比   http://blog.csdn.net/younger_china/article/details/15808685  进程间通信系列 之 共享内存及其实例   ...

  9. 让Dev C++支持C++11

    打开编译选项

  10. JAVA引用和垃圾回收

    1.强引用(StrongReference) 强引用是使用最普遍的引用.如果一个对象具有强引用,那垃圾回收器绝不会回收它.如下: 1 Object o=new Object();   //  强引用 ...