简单实用的ajax脚本
文件名:ajax.js
/**
* 取得当前页面的url
* 可以在调用ajax_query前修改
**/
var url = location.href.substr(0, location.href.length-location.search.length);
/**
* 给Function对象添加一个取得函数名的方法
**/
Function.prototype.Name = function() {
var s = Function.prototype.Name.caller.toString();
return s.split(/[\r\n]+/)[0].replace(/function\s+(\w+).+/g, '$1');
}
/**
* 函数 $
* 功能 获取dhtml对象
* 参数 e 待查找的对象id或name
* 返回 成功:对象 失败:null
*/
function $(e) {
var tag = document.getElementById(e);
if(tag) return tag;
tag = document.getElementsByName(e);
if(tag.tagName == undefined) return null;
return tag;
}
/**
* 函数 ajax_query
* 功能 向服务器发送指令,并处理返回数据
* 参数
* method 服务器端方法名
* tag 接受返回数据的dhml对象名,缺省时由服务器决定处理方式
* 其他 向服务器端传递的其他参数,可缺省
* 说明 虽然Msxml2.XMLHTTP有着比Microsoft.XMLHTTP更优秀的性能,但是在配置较低的
* 环境下并不能正常工作。当确认能够正常工作时,再删去注释
**/
function ajax_query(method, tag) {
//尝试创建XMLHTTP对象
var xmlhttp;
//// try {
//// xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
//// }catch(e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (oc) {
xmlhttp = null;
}
//// }
if(!xmlhttp && typeof XMLHttpRequest != "undefined") {
var xmlhttp = new XMLHttpRequest(); // Mozilla, Safari, ...
}
if(! xmlhttp) {
alert('错误! 缺少连接组件');
return;
}
if(arguments.length == 0) {
alert(Function.Name()+'至少需要一个方法名');
return;
}
var data =
相关文档:
我的春秋痴梦第二步:
写一个 通用的 对象 列表 ,还 包含 搜索和 属性过滤。
具体的效果是:
当新 业务 添加一个 表的时候,只需要在 对象模型里的 添加一个 model
后台几乎不需写代码。
(我是后台:激动人心!)
调用的对象,第几页,属性的 过滤 和搜索全是 前台的Ajax参数控制
(我是前台:#$!@#$%$^#$% ......
到此为止,你可能已经注意到,使用Ajax编程时有很多麻烦事。如果你要支持多个浏览器(现在还有谁只支持一个浏览器呢?),无疑会遭遇不兼容问题。单看一个简单的动作,比如说创建XMLHttpRequest对象的一个实例,这需要先进行浏览器测试。一旦开始尝试使用Ajax技术,你很快就会注意到要反复地完成同样的一些任务。当然, ......
ASP.NET 2.0 Ajax中能够在客户端js中很方便地调用服务器Webservice,以下为一些调用的示例。笔者安装的ASP.NET 2.0 AJAX
版本为AJAX November CTP。
三个示例分别为:
1 带参数的WS方法
2 不带参数的WS方法
3 参数类型为DataTable的WS方法
一、WebMethod
注意要点:
1 WebMethod类需要添加命名空间 Microsoft.Web. ......
$.ajax({
url: "auto_action.jsp",
type: "POST",
data: {nickName:request.term},
contentType :"application/x-www-form-urlencoded;charset=UTF-8", //加上这句就可以了!
& ......