示例一:利用Ajax来动态获取时间的例子。
HTML代码:
<%@ Page Language=\"C#\" AutoEventWireup=\"true\" CodeFile=\"Default.aspx.cs\" Inherits=\"_Default\" %>
<!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 runat=\"server\">
<title></title>
<script type=\"text/javascript\" src=\"Scripts/jquery-1.7.1.js\"></script>
<script type=\"text/javascript\" src=\"Scripts/jwy.js\"></script>
</head>
<body>
<form id=\"form1\" runat=\"server\">
<div>
<input type=\"text\" name=\"textbox\" id=\"text1\" />
<input type=\"button\" name=\"button\" id=\"Button1\" value=\"显示时间\" onclick=\"btnclick()\" />
</div>
</form>
</body>
</html>
创建一个“一般处理程序”来处理前台请求,返回系统当前时间:
Handler.ashx
<%@ WebHandler Language=\"C#\" Class=\"Handler\" %>
using System;
using System.Web;
using System.Linq;
using System.Collections.Generic;
using System.Text;
public class Handler : IHttpHandler {
public void ProcessRequest (HttpContext context) {
context.Response.ContentType = \"text/plain\";
context.Response.Write(ShowTime());
}
public bool IsReusable {
get {
return false;
}
}
public static string ShowTime()
{
return DateTime.Now.ToString();
}
}
js代码:
function btnclick() {
var httprequest = null;
// 初始化XMLHttpRequest对象
if (window.XMLHttpRequest) {
// Firefox等现代浏览器中的XMLHttpRequest对象创建
httprequest = new XMLHttpRequest();
}
else if (window.ActiveXObject) {
// IE中的XMLHttpRequest对象创建
httprequest = new ActiveXObject(\"Microsoft.XMLHTTP\");
}
if (!httprequest) {
alert(\"创建httprequest对象出现异常!\");
}
httprequest.open(\"POST\", \"Handler.ashx\", true);
//httprequest向handler发送post请求,最后参数是设定是否为异步请求,true为异步,false为同步
httprequest.onreadystatechange = function () {
//指定onreadystatechange事件句柄对应的函数
if (httprequest.readyState == 4) {
//4代表服务器返回完成
if (httprequest.status == 200) {
//200代表成功了
document.getElementById(\"text1\").value = httprequest.responseText;
//responsetext表示服务器返回的文本,还有一种方式是responseXML是为了获取服务器返回的xml
}
else {
alert(\"AJAX服务器返回错误!\");
}
}
}
httprequest.send();
//在这里才真正的向服务器端发送请求
}
我们用jquery来前台js代码会变得十分简洁:
基于jquery编写的js代码:
注意:HTML代码要把button的onclick事件去掉,因为我们直接在js用了事件绑定。
$(document).ready(function () {
//button1绑定事件
$(\"#Button1\").bind(\"click\", function () {
$.ajax({
url: \"Handler.ashx\",
type: \"POST\",
success: function (data) {
//$(\"#text1\").val(data);
document.getElementById(\"text1\").value = data;
}
});
});
});
不得不说jquery“简约而不简单”……
jquery中的$.ajax集合了get、post方法,默认的是get。
如果直接用POST的话,代码更简单
$(document).ready(function () {
//button1绑定事件
$(\"#Button1\").bind(\"click\", function () {
$.post(\"Handler.ashx\", function (data) {
document.getElementById(\"text1\").value = data;
});
});
});
示例二:
一、XMLHttpRequest实现获取数据
不使用jQuery实现页面不刷新获取内容的方式,我们这里采用XMLHttpRequest原生代码实现;
js代码如下:
//1.获取a节点,并为其添加Oncilck响应函数
document.getElementsByTagName(\"a\")[0].onclick = function(){
//3、创建一个XMLHttpRequest();
var request = new XMLHttpRequest();
//4、准备发送请求的数据url
var url = this.href;
var method = \"GET\";
//5、调用XMLHttpRequest对象的open方法
request.open(method,url);
//6、调用XMLHttpRequest对象的send方法
request.send(null);
//7、为XMLHttpRequest对象添加onreadystatechange 响应函数
request.onreadystatechange = function(){
//8、判断响应是否完成:XMLHttpRequest 对象的readystate的属性值为4的时候
if(request.readyState == 4){
//9、在判断响应是否可用:XMLHttpRequest 对象status 属性值为200
if(request.status == 200){
//10、响应结果
alert(request.responseText);
}
}
}
//2、取消a节点的额默认行为
return false;
}
插入HTML代码:
<a href = \"hello.txt\">点击获取文本内容</a>
二、jQuery实现ajax获取信息
这个例子是动态的从后台获取数据来改变下拉按钮的内容;
js代码如下:
function bindCarteam0(){
//通过URL请求数据
var URL = <select:link page=\"/xiaoshouwl.do?method=getCarteamList\"/>;
$.ajax({
url:URL,
type:\'GET\',
dataType: \"json\",
success:function(html){
var str=\"<option value=\'-1\'>全部</option>\";
for(var i=0;i<html.length;i++){
str+=\"<option value=\'\"+html[i].id+\"\'>\"+html[i].name+\"</option>\";
}
$(\"#carteam_code\").empty().html(str);
}
});
}
HTML代码如下:
<select:select property=\"carteam_code\" styleId=\"carteam_code\" style=\"width:150px\">
<select:option value=\"-1\">全部</select:option>
</select:select>
其中type类型有get和post两种;
post 可以传输的数据量比较大,get有字节限制;
本文地址:https://www.stayed.cn/item/23673
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我