加载异步数据

6-1 加载异步数据

XMLHttpRequest--传统的JavaScript方法实现Ajax功能

6-1-a

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>XMLHttpRequest--传统的JavaScript方法实现Ajax功能</title>
<style type="text/css">
body{ font-size:13px;}
.divFrame{ width:260px; border:solid 1px #666;}
.divFrame .divTitle{ padding:5px; background-color:#eee;}
.divFrame .divContent{ padding:8px;}
.divFrame .divContent .clsShow{ font-size:14px;}
.btn{ border:#666 1px solid; padding:2px; width:80px;}
</style> <script>
var objXmlHttp = null //声明一个空的XMLHTTP变量 function CreateXMLHttp()
{
//根据浏览器的不同,返回该变量的实体对象
if(window.ActiveXObject)
{
objXmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else
{
if(window.XMLHttpRequest)
{
objXmlHttp = new XMLHttpRequest();
}
else
{
alert("初始化XMLHTTP错误!");
}
}
} function GetSendData()
{
//
document.getElementById("divTip").innerHTML = "<img alt='' title='' src='' />";
//
var strSendUrl = "6-1-b.html?date=" + Date();
//
CreateXMLHttp();
//
objXmlHttp.open("GET",strSendUrl,true);
objXmlHttp.onreadystatechange = function()
{
if(objXmlHttp.readyState == 4)
{
if(objXmlHttp.statue == 200)
{
//
document.getElementById("divTip").innerHTML = objXmlHttp.responseText;
}
}
}
//
objXmlHttp.send(null);
} </script>
</head>
<body> <div class="divFrame">
<div class="divTitle">
<input id="Button1" type="button" onclick="GetSendData()" class="btn" value="获取数据" />
</div>
<div class="divContent">
<div id="divTip"></div>
</div>
</div> </body>
</html>

6-1-b

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style type="text/css">
</style>
<script type="text/javascript" src="js/jquery-1.12.3.min.js"></script>
<script>
</script>
</head>
<body>
<div class="clsShow">
姓名:陶国荣<br />
性别:男<br />
邮箱:tao_guo_rong@163.com
</div>
</body>
</html>

6-2 jQuery:load()方法

load(url,[data],[callback]) --获取异步数据
--url:被加载的页面技术
--[data]:表示发送到服务器的数据,格式为:key/value
--[callback]:回调函数

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<style type="text/css">
body{ font-size:13px;}
.divFrame{ width:260px; border:solid 1px #666;}
.divFrame .divTitle{ padding:5px; background-color:#eee;}
.divFrame .divContent{ padding:8px;}
.divFrame .divContent .clsShow{ font-size:14px;}
.btn{ border:#666 1px solid; padding:2px; width:80px;}
</style>
<script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function () {
//load(url,[data],[callback]) --获取异步数据
//url--被加载的页面技术
//[data]--表示发送到服务器的数据,格式为:key/value
//[callback]--回调函数
$("#Button1").click(function () {
$("#divTip").load("a.htm .clsShow", function (data) {
$("#divTip").html(data)
});
//a.htm .clsShow a.htm页面中类别名为.clsShow的全部元素
//$("#divTip").load("a.htm");
});
})
</script>
</head>
<body>
<h2>6-2-a</h2>
<div class="divFrame">
<div class="divTitle">
<input id="Button1" type="button" class="btn" value="获取数据" />
</div>
<div class="divContent">
<div id="divTip"></div>
</div>
</div>
</body>
</html>

6-3 getJSON()

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>getJSON</title>
<style type="text/css">
body{ font-size:13px;}
.divFrame{ width:260px; border:solid 1px #666;}
.divFrame .divTitle{ padding:5px; background-color:#eee;}
.divFrame .divContent{ padding:8px;}
.divFrame .divContent .clsShow{ font-size:14px;}
.btn{ border:#666 1px solid; padding:2px; width:80px;}
</style>
<script type="text/javascript" src="js/jquery-1.12.3.min.js"></script>
<script>
$(function(){
//*******
//JSON文件格式--一种轻量级的数据交互格式
//$.getJSON(url,[data],[callback])
//--url:被加载的页面技术
//--[data]:表示发送到服务器的数据,格式为:key/value
//--[callback]:回调函数
$("#Button1").click(function(){
//
$.getJSON('demo.js',function(date){
$("#divTip").empty();
var strHTML="";
$.each(date,function(InfoIndex,Info){
strHTML += "姓名:" + Info["name"] + "<br>";
strHTML += "性别:" + Info["sex"] + "<br>";
strHTML += "邮箱:" + Info["email"] + "<hr>";
})
$("#divTip").html(strHTML);
})
})
})
</script>
</head>
<body>
<h2>6-3:getJSON</h2>
<div class="divFrame">
<div class="divTitle">
<input id="Button1" type="button" class="btn" value="获取数据" />
</div>
<div class="divContent">
<div id="divTip"></div>
</div>
</div>
</body>
</html>

6-4  getScript()

全局函数getScript()获取.js文件的内容.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>getScript</title>
<style type="text/css">
body{ font-size:13px;}
.divFrame{ width:260px; border:solid 1px #666;}
.divFrame .divTitle{ padding:5px; background-color:#eee;}
.divFrame .divContent{ padding:8px;}
.divFrame .divContent .clsShow{ font-size:14px;}
.btn{ border:#666 1px solid; padding:2px; width:80px;}
</style>
<script type="text/javascript" src="js/jquery-1.12.3.min.js"></script>
<script>
//******
//$.getScript(url,[callback]) $(function(){
//
$("#Button1").click(function(){
//
$.getScript("UserInfo.js",function(){
$("#test").html("ok!");
});
})
})
</script>
</head>
<body> <h2>6-4:getScript</h2>
<div class="divFrame">
<div class="divTitle">
<input id="Button1" type="button" class="btn" value="获取数据" />
</div>
<div class="divContent">
<div id="divTip"></div>
<div id="test"></div>
</div>
</div> </body>
</html>

js文件

// JavaScript Document
var data =[
{
"name":"吴者然",
"sex":"男",
"email":"demo1@123.com"
},
{
"name":"吴中者",
"sex":"男",
"email":"demo2@123.com"
},
{
"name":"何开",
"sex":"女",
"email":"demo3@123.com"
},
{
"name":"zq",
"sex":"man",
"email":"zq@zq.com"
}
]
var strHTML="";
$.each(data,function(){
strHTML += "姓名:" + this["name"] + "<br>";
strHTML += "性别:" + this["sex"] + "<br>";
strHTML += "邮箱:" + this["email"] + "<hr>";
});
$("#divTip").html(strHTML);

6-5  异步加载XML文档

$.get(url,[data],[callback],[type])

--url:加载的数据地址

--[data]:发送到服务器的数据,key/value

--[callback]:加载成功时执行的回调函数

--[type]:返回数据的格式--html,xml,js,json,text

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>get()--XML</title>
<style type="text/css">
body{ font-size:13px;}
.divFrame{ width:260px; border:solid 1px #666;}
.divFrame .divTitle{ padding:5px; background-color:#eee;}
.divFrame .divContent{ padding:8px;}
.divFrame .divContent .clsShow{ font-size:14px;}
.btn{ border:#666 1px solid; padding:2px; width:80px;}
</style>
<script type="text/javascript" src="js/jquery-1.12.3.min.js"></script>
<script>
$(function(){
$("#Button1").click(function(){
//打开文件,并通过回调函数处理获取的数据
$.get("UserInfo.xml",function(data){
var strHTML="";
$(data).find("User").each(function() {
var $strUser = $(this);
strHTML += "姓名:" + $strUser.find("name").text()+"<br>";
strHTML += "性别:" + $strUser.find("sex").text()+"<br>";
strHTML += "邮箱:" + $strUser.find("email").text()+"<hr>";
});
$("#divTip").html(strHTML);
});
})
})
</script>
</head>
<body> <h2>6-5:XML</h2>
<div class="divFrame">
<div class="divTitle">
<input id="Button1" type="button" class="btn" value="获取数据" />
</div>
<div class="divContent">
<div id="divTip"></div>
<div id="test"></div>
</div>
</div> </body>
</html>

xml:

<?xml version="1.0" encoding="utf-8"?>
<Info>
<User id ="1">
<name>qq</name>
<sex>male</sex>
<email>qq@qq.com</email>
</User>
<User id ="2">
<name>ww</name>
<sex>female</sex>
<email>ww@ww.com</email>
</User>
</Info>

请求服务器数据

6-6 $.get()向服务器请求数据

***客户端向服务器传递参数时,使用的格式是{key0:value0,key1:value1,.......},"key0"为参数名称,"value0"为参数的值。

***如果参数的值是中文格式,必须通过使用encodeURI()进行转码,当然,在客户端接受时,使用decodeURL()进行解码。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>get</title>
<style type="text/css">
body{ font-size:13px;}
.divFrame{ width:260px; border:solid 1px #666;}
.divFrame .divTitle{ padding:5px; background-color:#eee;}
.divFrame .divContent{ padding:8px;}
.divFrame .divContent .clsShow{ font-size:14px;}
.btn{ border:#666 1px solid; padding:2px; width:80px;}
#txtName
{
width: 122px;
}
</style>
<script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
<script type="text/javascript"> $(function () {
$("#Button1").click(function () {
//打开文件,并通过回调函数返回服务器响应后的数据
$.get("UserInfo.aspx", {
name: encodeURI($("#txtName").val())
}, function (data) {
$("#divTip").empty().html(data);
});
});
}) </script> </head>
<body> <h2>6-6:get()</h2>
<div class="divFrame">
<div class="divTitle">
姓名:<input id="txtName" type="text" /><input id="Button1" type="button" class="btn" value="获取数据" />
</div>
<div class="divContent">
<div id="divTip"></div>
<div id="test"></div>
</div>
</div> </body>
</html>

服务器端文件

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="UserInfo.aspx.cs" Inherits="WebApplication1.UserInfo" %>

<%

    string strName = System.Web.HttpUtility.UrlDecode(Request["name"]);
string strHTML = "<div class='clsShow'>";
if (strName == "qq")
{
strHTML += "name:qq<br>";
strHTML += "sex:qq<br>";
strHTML += "mail:qq@qq.com<hr>";
}
else if (strName == "ww")
{
strHTML += "name:ww<br>";
strHTML += "sex:ww<br>";
strHTML += "mail:ww@ww.com<hr>";
}
else
{
strHTML += "没有找到!<hr>";
}
strHTML += "</div>";
Response.Write(strHTML); %>

6-7  $.post()

**$.get()与$.post()区别:

**GET方式不适合传递数据量较大的数据,其请求的历史信息会保存在浏览器的缓存中;POST则不存在

--$.post(url,[data],[callback],[type])

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>post</title>
<style type="text/css">
body{ font-size:13px;}
.divFrame{ width:260px; border:solid 1px #666;}
.divFrame .divTitle{ padding:5px; background-color:#eee;}
.divFrame .divContent{ padding:8px;}
.divFrame .divContent .clsShow{ font-size:14px;}
.btn{ border:#666 1px solid; padding:2px; width:80px;}
#txtName
{
width: 122px;
}
</style>
<script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function () {
$("#Button1").click(function () {
//
$.post("UserInfo.aspx", {
name: encodeURI($("#txtName").val())
}, function (data) {
$("#divTip").empty().html(data);
});
});
})
</script>
</head>
<body>
<h2>6-7:post()</h2>
<div class="divFrame">
<div class="divTitle">
姓名:<input id="txtName" type="text" /><input id="Button1" type="button" class="btn" value="获取数据" />
</div>
<div class="divContent">
<div id="divTip"></div>
<div id="test"></div>
</div>
</div>
</body>
</html>

6-8  serialize()序列化表单

**serialize()方法可以很完美地模拟浏览器提交表单的操作,同时自动解决了中文编码的问题,但它自身有很多不足,如表单中有多项被选中时,该方法只能传递一项的值。因此,在选择传递参数时,须慎重考虑。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>serialize()序列化表单</title>
<style type="text/css">
body{ font-size:13px;}
.divFrame{ width:260px; border:solid 1px #666;}
.divFrame .divTitle{ padding:5px; background-color:#eee;}
.divFrame .divContent{ padding:8px;}
.divFrame .divContent .clsShow{ font-size:14px;}
.btn{ border:#666 1px solid; padding:2px; width:80px;}
</style>
<script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function () {
$("#Button1").click(function () {
//
//serialize()序列化表单
$.post("UserInfo2.aspx", $("#frmUserInfo").serialize(),
function (data) {
$("#divTip").empty().html(data);
});
/*
$.post("UserInfo2.aspx", {
name: encodeURI($("#txtName").val()),
sex:encodeURI($("#txtSex").val())
}, function (data) {
$("#divTip").empty().html(data);
});
*/
});
})
</script>
</head>
<body>
<h2>6-8:serialize()</h2>
<form id="frmUserInfo">
<div class="divFrame">
<div class="divTitle">
姓名:<input id="txtName" type="text" /><br />
邮箱:<input id="txtSex" type="text" /><br />
<input id="Button1" type="button" class="btn" value="获取数据" />
</div>
<div class="divContent">
<div id="divTip"></div>
<div id="test"></div>
</div>
</div>
</form>
</body>
</html>

$.ajax()方法

6-9  $.ajax([options])

**参数

--url:string 发送请求的地址

--type:string 数据请求方式(post/get),默认是get

--data:string/object 发送到服务器的数据,字符串格式(get:字符串在URL后面)

--dataType:string 服务器返回的数据类型。html,script,text,xml,json

--beforeSend:function

--complete:function 请求完成后调用的回调函数

--success:function 请求成功后调用的回调函数,有两个参数,一个是根据参数dataType处理后服务器返回的数据,另一个是strStatus,用于描述成功请求类型的字符串

--error:function 请求失败后调用的回调函数

--timeout:Number 请求超时的时间(毫秒)

--global:boolean 是否响应全局事件

--async:boolean 是否为异步请求,true,false

--cache:boolean 是否进行页面缓存,true,false

Login.htm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<style type="text/css">
body{ font-size:13px;}
.divFrame{ width:260px; border:solid 1px #666;}
.divFrame .divTitle{ padding:5px; background-color:#eee;}
.divFrame .divContent{ padding:8px;}
.divFrame .divContent .clsShow{ font-size:14px;}
.btn{ border:#666 1px solid; padding:2px; width:80px;}
</style>
<script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function () { $("#btnLogin").click(function () {
var userName = encodeURI($("#txtName").val());
var userPass = encodeURI($("#txtPass").val()); $.ajax({
url: "Login.aspx",
typr:"post",
dataType: "text",
data: { txtName: encodeURI($("#txtName").val()), txtPass: encodeURI($("#txtPass").val()) },
success: function (data) {
if (data == "1") {
$("#divError").show().html("ok!");
//alert(data);
}
else {
//alert(data);
$("#divError").show().html("error!");
}
}
})
});
})
</script> </head> <body> <div class="divFrame">
<div class="divTitle">
<span>用户登录</span>
</div> <div class="divContent">
<div class="clsShow">
<div id="divError" class="clsError"></div>
<div>名称:<input id="txtName" type="text" class="txt" /></div>
<div>密码:<input id="txtPass" type="text" class="txt" /></div> <div>
<input id="btnLogin" type="button" value="登录" class="btn" />&nbsp;
<input id="btnReset" type="button" value="取消" class="btn" />
</div> </div>
</div>
</div> </body>
</html>

Login.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Login.aspx.cs" Inherits="WebApplication1.Login" %>

<%

    string strName = System.Web.HttpUtility.UrlDecode(Request["txtName"]);
string strPass = System.Web.HttpUtility.UrlDecode(Request["txtPass"]);
var blnLogin = ;
if (strName == "admin" && strPass == "admin")
{
blnLogin = ;
}
Response.Write(blnLogin); %>

**$.ajax()方法时jQuery中最底层的方法,全局函数$.getScript(),$.get(),$.post(),$.getJSON()都可以用$.ajax()方法进行代替。

6-10  $.ajaxSetup()设置全局Ajax

**$.ajaxSetup([options]) , [options]是一个对象,通过该对象可以设置$.ajax()方法中的参数。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>$.ajaxSetup()方法全局设置ajax</title>
<style type="text/css">
body{ font-size:13px;}
.divFrame{ width:260px; border:solid 1px #666;}
.divFrame .divTitle{ padding:5px; background-color:#eee;}
.divFrame .divContent{ padding:8px;}
.divFrame .divContent .clsShow{ font-size:14px;}
.btn{ border:#666 1px solid; padding:2px; width:80px;}
</style>
<script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function () {
//全局设置
$.ajaxSetup({
type: "GET",
url: "UserInfo.xml",
dataType: "xml"
}); $("#Button1").click(function () {
success: function (data) {
//ShowData(data, "姓名", "name");
$("#divTip").html("姓名");
}
});
$("#Button2").click(function () {
success: function (data) {
//ShowData(data, "性别", "sex");
$("#divTip").html("性别");
}
});
$("#Button3").click(function () {
success: function (data) {
//ShowData(data, "邮箱", "email");
$("#divTip").html("邮箱");
}
}); /*
*showData
*d为请求响应后的数据
*n为数据中文说明字符
*v为数据在响应数据中的元素名称
*/
function ShowData(d, n, v) {
$("#divTip").empty();
var strHTML = "";
$(d).find("User").each(function () {
var $strUser = $(this);
strHTML += n + ":" + $strUser.find(v).text() + "<hr>";
});
$("#divTip").html(strHTML);
}
})
</script>
</head>
<body> <div class="divFrame">
<div class="divTitle">
<span><input id="Button1" value="姓名" type="button" class="btn" /></span>
<span><input id="Button2" value="性别" type="button" class="btn" /></span>
<span><input id="Button3" value="邮箱" type="button" class="btn" /></span>
</div>
<div class="divContent">
<div id="divTip" class="clsShow"></div>
</div>
</div> </body>
</html>

UserInfo.xml

<?xml version="1.0" encoding="utf-8" ?>

<Info>
<User id ="1">
<name>qq</name>
<sex>male</sex>
<email>qq@qq.com</email>
</User>
<User id ="2">
<name>ww</name>
<sex>female</sex>
<email>ww@ww.com</email>
</User>
</Info>

Ajax中的全局事件

--ajaxComplete(callback)

--ajaxError(callback)

--ajaxSend(callback)

--ajaxStart(callback)

--ajaxStop(callback)

--ajaxSuccess(callback)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Ajax中的全局事件</title>
<style type="text/css">
body{ font-size:13px;}
.divFrame{ width:260px; border:solid 1px #666;}
.divFrame .divTitle{ padding:5px; background-color:#eee;}
.divFrame .divContent{ padding:8px;}
.divFrame .divContent .clsShow{ font-size:14px;}
.clsTip{ display:none;}
.btn{ border:#666 1px solid; padding:2px; width:80px;}
#txtData
{
width: 115px;
}
</style>
<script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function () {
//
$("#divMsg").ajaxStart(function () {
$(this).show();
}); $("#divMsg").ajaxStop(function () {
$(this).html("已成功获取数据").hide(2000);
}); $("#Button1").click(function () {
$.ajax({
type: "GET",
url: "GetData.aspx",
data: { txtData: encodeURI($("#txtData").val()) },
dataType: "html",
success: function (data) {
var str = decodeURI(data).substr(0, 2);
$("#divTip").html(str);
}
});
});
})
</script>
</head>
<body> <div class="divFrame">
<div class="divTitle">
<span>数据:<input id="txtData" type="text" /></span>
<span><input id="Button1" type="button" value="发送" class="btn" /></span> </div>
<div class="divContent">
<div id="divMsg" class="clsTip"></div>
<div id="divTip" class="clsShow"></div>
</div>
</div> </body>
</html>
GetData.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="GetData.aspx.cs" Inherits="WebApplication1.GetData" %>

<%

    string strName = Request["txtData"];
Response.Write(strName);
%>

第六篇 ajax的更多相关文章

  1. 解剖SQLSERVER 第十六篇 OrcaMDF RawDatabase --MDF文件的瑞士军刀(译)

    解剖SQLSERVER 第十六篇 OrcaMDF RawDatabase --MDF文件的瑞士军刀(译) http://improve.dk/orcamdf-rawdatabase-a-swiss-a ...

  2. 解剖SQLSERVER 第六篇 对OrcaMDF的系统测试里避免regressions(译)

    解剖SQLSERVER 第六篇  对OrcaMDF的系统测试里避免regressions (译) http://improve.dk/avoiding-regressions-in-orcamdf-b ...

  3. Python之路【第十六篇】:Django【基础篇】

    Python之路[第十六篇]:Django[基础篇]   Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了O ...

  4. 第六篇 :微信公众平台开发实战Java版之如何自定义微信公众号菜单

    我们来了解一下 自定义菜单创建接口: http请求方式:POST(请使用https协议) https://api.weixin.qq.com/cgi-bin/menu/create?access_to ...

  5. RabbitMQ学习总结 第六篇:Topic类型的exchange

    目录 RabbitMQ学习总结 第一篇:理论篇 RabbitMQ学习总结 第二篇:快速入门HelloWorld RabbitMQ学习总结 第三篇:工作队列Work Queue RabbitMQ学习总结 ...

  6. 第六篇 Replication:合并复制-发布

    本篇文章是SQL Server Replication系列的第六篇,详细内容请参考原文. 合并复制,类似于事务复制,包括一个发布服务器,一个分发服务器和一个或多个订阅服务器.每一个发布服务器上可以定义 ...

  7. 第六篇 Integration Services:初级工作流管理

    本篇文章是Integration Services系列的第六篇,详细内容请参考原文. 简介在前几篇文章中,我们关注使用增量加载方式加载数据.在本篇文章,我们将关注使用优先约束管理SSIS控制流中的工作 ...

  8. 第六篇 SQL Server安全执行上下文和代码签名

    本篇文章是SQL Server安全系列的第六篇,详细内容请参考原文. SQL Server决定主体是否有必要的执行代码权限的根本途径是其执行上下文规则.这一切都可能复杂一个主体有执行代码的权限,但是却 ...

  9. 第六篇 SQL Server代理深入作业步骤工作流

    本篇文章是SQL Server代理系列的第六篇,详细内容请参考原文. 正如这一系列的前几篇所述,SQL Server代理作业是由一系列的作业步骤组成,每个步骤由一个独立的类型去执行.每个作业步骤在技术 ...

随机推荐

  1. 苹果应用(.ipa)打包和上传,不用通过苹果商店即可用

    签名工具: appuploader(.p12:.cer) 打包平台: http://www.lbuilder.com(收费) 上传平台: http://www.58apk.com (每日50次下载,加 ...

  2. 文字和符号组合成图 Banner

    springboot 启动 logo.... 文字符号组合成的图. <<< | /\\\ /--\\\ / \\\\ <*| /________\\\\ | ___ | | | ...

  3. 对opencv读取的图片进行像素调整(1080, 1920) 1.cv2.VideoCapture(构造图片读取) 2.cv2.nameWindow(构建视频显示的窗口) 3.cv2.setWindowProperty(设置图片窗口的像素) 4.video_capture(对图片像素进行设置)

    1. cv2.VideoCapture(0) #构建视频抓捕器 参数说明:0表示需要启动的摄像头,这里也可以写视频的路径 2. cv2.nameWindow(name, cv2.WINDOW_NORM ...

  4. [django]update_or_create使用场景

    update_or_create 作用是为了添加数据时防止重复. 先去查询, 如果没有在创建, 如果有则更新. update_or_create用法与密码存储实例 create方法 如果id是None ...

  5. c#阿里云短信验证码

    发送验证码 private static void SendAcs(string mobile, string templateCode, dynamic json, int ourid) { if ...

  6. __linux__、__POSIX__宏

    __linux__用于定义linux,__POSIX__不太了解,各系统的宏有如下: std::string getOsName() { #ifdef _WIN32 return "Wind ...

  7. Java模拟实现百度文档在线浏览

    Java模拟实现百度文档在线浏览 这个思路是我参考网上而来,代码是我实现. 采用Apache下面的OpenOffice将资源文件转化为pdf文件,然后将pdf文件转化为swf文件,用FlexPaper ...

  8. 'caching_sha2_password' cannot be loaded

    Authentication plugin 'caching_sha2_password' cannot be loaded 下载新版(8+)mysql的时候,我使用的版本8.0.16,使用图形客户端 ...

  9. 微信小程序遍历wx:for,wx:for-item,wx:key

    微信小程序中wx:for遍历默认元素为item,但是如果我们设计多层遍历的时候我们就需要自定义item的字段名以及key的键名 wx:for="{{item.goodsList}}" ...

  10. 【HANA系列】SAP HANA SQL字符串连接操作

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP HANA SQL字符串连 ...