首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 第二书店 程序员
您的位置:Web开发->利用回调实现脚本实体类和模拟Ajax

利用回调实现脚本实体类和模拟Ajax2008-05-21 来自:lizhe1985  [收藏到我的网摘]

来源:沈逸的专栏 - 博客园

这里有几点。 我们用asp.net开发数据库应用时。时常要建立一些实体如

public class UserEntity
...{
public string UserName
...{
get...{
return ""; }
}
public string UserEmail
...{
get...{
return "" ; }
}
}
下面要讲的是如何使用脚本来模拟这种实体

首先 要讲解概念 要返还类似这种实体脚本可以这么写



UserEntity=function()
...{
return ...{"UserName":"shenyi","UserEmail":"shenyi@csdn.net"}
}
这样我们在 脚本中只要写

var scriptEntity=new UserEntity();
scriptEntity.UserName;
scriptEntity.UserEmail;

就可以引用到,好 脚本实体构建好了。接下来我们要从服务器取数据如下

新建一个aspx页面 假如叫 getData.aspx 在代码里写

public void Page_load()
...{
int userid=int.parse(Request.QueryString["uid"].ToString());
string sql="select * from Users where userid="+userid.ToString();
using(DataTable dt=SqlHelper.ExecuteDataSet(sql).Tables[0]) //SqlHelper 不要告诉我 不知道是什么
...{
// 这里构建一个 字符 令 一个 脚本变量 等于 {"UserName":dt.rows[0]["username].......}
//如 Response.Write("userReturnValue={.......//这里自己拼接}");
Response.End();
}
}


以下是如何把脚本和这个 aspx页面建立联系 如下直接是代码



var UserReturnValue="" //这个很重要一定要定义 因为在服务端要对其赋值

ComJS=function()
...{

this.GetEntitying=function(uid,callback)
...{
var scriptObj=document.createElement("script");
scriptObj.type="text/javascript";
scriptObj.src="getData.aspx?uid="+uid
document.getElementsByTagName("head")[0].appendChild(scriptObj);


scriptObj.onreadystatechange=function()
...{
if(scriptObj.readyState=="loaded")
...{

callback.EndGetEntity(UserReturnValue);
}
}

}
}


这里使用 callback回调 是最重要的一步 当脚本加载完毕后才会对UserReturnValue 进行赋值 因此我们不能直接获得这个实体.

上面脚本写完后 我们在页面要开始获得这个 实体



var cjs=new ComJS(); //初始化我们的脚本对象
function BeginGetEntity()
...{
this.EndGetEntity=function(entityDataList)
...{
//entityDataList 这个就是最终的实体对象 你可以直接 用 entityDataList.UserName 或者 entityDataList.表里字段名
//来获取这个实体的对象
// 注意 业务操作 要在这个 函数内执行。因为这是一个回调。也就是当服务端把数据取到了 这边才开始执行
严格来说就是异步获取数据。类似Ajax 但是不使用 xmlhttp对象
}
}

var bge=new BeginGetEntity();
cjs.GetEntity("3",bgelist); //这里的3代表我要取用户id等于3的 数据


好/ 整个用脚本构建实体的方法写好 希望对大家尤其是初学者 会有点用。其实在脚本中要实现ajax不光只有xmlhttp可以实现 很普通的脚本也能实现

推荐人评论

利用回调实现脚本实体类和模拟Ajax代码及详解。

用户评论

正在载入评论列表...

是谁推荐了此篇文章

专家头像李哲
个人blog发送信息
李哲推荐的其他文章

热点新闻

热点评论

    资源下载

    精彩视频