ajax 方法
// ==============================================================================
// Created by Bndy at 10 / 25 / 2007
// Copyright (c) 2007 Bndy, All rights reserved.
// Welcome to my site http : // www.bndy.net
//
// * * * * * * * * * * * * * * * *
// * Q Q : 8 1 7 9 5 7 0 5 *
// * M S N : bndy533@msn.com *
// * Email : bndy533@163.com *
// * * * * * * * * * * * * * * * *
//
// ------------------------------------------------------------------------------
// ajax 相关函数
// ==============================================================================
var xmlHttp;
// 创建XMLHttpRequest对象
function createXMLHttpRequest() {
try {
// FireFox, Opera 8.0 +, Safari
xmlHttp = new XMLHttpRequest();
}
catch (e) {
try {
// IE 6.0 +
xmlHttp = new ActiveXObject('MSXML2.XMLHTTP');
}
catch (e) {
try {
// IE 5.5 +
xmlHttp = new ActiveXObject('Microsoft.XMLHTTP');
}
catch (e) {
alert('您的浏览器不支持AJAX!');
return false;
}
}
}
}
function SendContent(url, type, data, handleMethod) {
createXMLHttpRequest();
xmlHttp.open(type, url);
xmlHttp.onreadystatechange = function() { postBack(handleMethod); };
xmlHttp.send(data);
}
function postBack(method) {
if (xmlHttp.readyState == 4) {
if (xmlHttp.status == 200) {
//var result = xmlHttp.responseText; // 返回文本或XML
// 相关数据处理
method();
}
else {
alert('the XMLHttpRequest status is ' + xmlHttp.status);
}
}
}
function string2Json(s) {
return eval("(" + s + ")");
}
相关文档:
ajax.open方法中,第3个参数是设同步或者异步。prototype等js类库一般都默认为异步,即设为true。
先说下同步的
情况下,js会等待请求返回,获取status。不需要onreadystatechange事件处理函数。
而异步则需要
onreadystatechange事件处理,且值为4再正确处理下面的内容
......
<!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>
<script type="text/javascript" src="http://www.google.com/jsapi"></script> ......
在Web开发程序中,往往由于种种原因,客户会多次操作页面导致数据冗余或不一致, 在ASP.NET AJAX出现之前可以通过对__dopostback()的调用等方法也可以防止页面多次提交。
在ASP.NET AJAX中的页面客户端中有一个叫onInitializeRequest的事件,它在页面初始化之前触发,可以对页面的提交事件进行控制,并且可以调用该事件参 ......
调用方法如下:
var p = new Pager(5, 10);
p.init('页码所在的容器ID', dataOp);
function dataOp() {
// ajax数据操作
SendContent("/Admin/TopicService.asmx/GetTopicList?currentPageIndex=" + p.currentPage + "&pageSize=" + p.pageSize, "GET", "", ajax ......
RenderMode属性:使用某一个元素圈出一个区域,它有两个值:— Block(默认)、Inline
Block:使用的div标记;Inline:使用的是span标记
UpdateMode属性:一个UpdateMode在某次异步回送之后,它并不一定会更新,她可能需要满足一定的条件才更新,如果一个
UpdatePanel的UpdateMode为Always(总是),则表示在某次异步传 ......