Javascript如何控制会话实现的原理和代码
如果你看到这个问题,也许会有人问问题。Javascript表示客户机,会话代表服务器。谈需求,我做一个权限管理,需要点击一个模块,更改相应的会话模块的代码,并执行此操作是一个标签,当然,我不知道一个LinkButton也可以跳转页面和修改会话应该做的,个人感觉不错,具体的,如果有人做演示可以留言。
标签实现页面跳过。他的onclick事件也是在这个页面的JS方法。现在回到标题中描述的问题——编写Javascript方法来修改会话。
事实上,这个例子并不难,但是我个人的意义是不寻常的,这个例子减轻了我对Ajax的恐惧。
首先,编写一个通用处理程序(即服务器代码)。
需要解释的是,如果您想修改会话,则需要添加一个额外的名称空间,并实现一个接口(仅用于实现,没有其他内容)。
复制代码代码如下所示:
使用系统;
使用system.collections.generic;
使用LINQ系统;
使用系统;
使用system.web.sessionstate;
命名空间tgb.cjx
{
X
只需修改会话
X
公开课:IHttpHandler,modifysession IRequiresSessionState
{
public void ProcessRequest(HttpContext上下文)
{
context.response.contenttype =文本/平原;
会话上下文。{modelid} =背景。要求。QueryString {会话} ToString();
/ /上下文。会话{modelid=1;
/ / context.response.write(上下文。会话{modelid));
}
公共布尔方法
{
得到
{
返回false;
}
}
}
}
很容易找到上面实现的函数吗
接下来是客户机代码
复制代码代码如下所示:
VaR技术;
VaR的会话;
功能提交(obj){
/ /会话= obj.id.substr(1, 1);
会议= obj.id.replace(模型
/ / IE7,IE8,FF,Mozilla,Safari
如果(窗口。XMLHttpRequest){
/ /警报(IE7,IE8,FF,Mozilla,Safari );
XMLHTTP =新的XMLHttpRequest();
如果(XMLHTTP。overrideminmetype){
Xmlhttp.overrideMinmeType(文本或XML);
}
如果(窗口。ActiveX对象){ }
/ /警报(IE5,IE6 );
无功activename = {MSXML2. XMLHTTP
对于(var i = 0;i < activename.length;i++){
{试
XMLHTTP =新的ActiveX对象(activename {我});
打破;
} catch(e){
返回;
}
}
}
如果(XMLHTTP = =定义的| | { XMLHTTP = = null)
警报(当前浏览器不支持XMLHttpRequest对象,创作请更换浏览器);
返回;
}
xmlhttp.onreadystatechange =回调;
Xmlhttp.open(
Xmlhttp.send(空);
}
函数回调(){
判断和服务器交互完成,还可以确定服务器是否返回数据。
如果(xmlhttp.readystate = = 4){
交互和服务器完成所述
如果(xmlhttp.status = = 200){
警告(正确的返回数据);
返回;
}
}
}
在回调函数中,我只写了一条语句,测试数据的正常返回,然后对它进行注释。
在标记绑定事件的情况下,我最初使用了字符串拼接的方法,即从数据库中查找模块ID和模块名称,然后通过以下语句连接句子。
复制代码代码如下所示:
StringBuilder sbmodel =新StringBuilder();
将能够访问模块菜单拼接。
为(int i = 0;i < dtmodel.rows.count;i++)
{
sbmodel。追加(+ dtmodel。行{我} {mdlname}。ToString()+);
}
但这是很容易犯错误的。虽然我在抄写之前写了一个测试句子,然后把变量写到了写作位置,这样写的句子很难调试。
在与别人交流的过程中,中继器控制已经说过,重复的过程不是中继器控制的事情,控制是为我们做的。为什么你必须为自己编写这样一个容易出错的代码
复制代码代码如下所示:
href =spaceweb.aspx目标=_parent runat=serveronclick=提交(本)>>
不是这样的,感觉会很清楚的,因为我不得不用字符串,而实现中继器,只是一个想法,在ID大会上不知道不会有任何问题,如果你有任何问题,欢迎回来。
到目前为止,我的第一篇关于AJAX的完成,对Ajax的理解仅仅是一个开始,里面是没有数据交换相关的,所以对于一些知识来解释或苍白,在使用Ajax的深入研究,不仅停留在UpdatePanel定时器和控制。对于一些那么困难的情况下,最好是自己做的。
在这个例子中,你可以要求一个链接按钮,可以实现的,为什么这么多的麻烦,但我想说,我不认为一个按钮可以开始解决他们的问题是复杂的,这涉及到一个页面上,事实上,可以解决LinkButton,但它是一个学习过程中,自己做一点困惑促进Ajax的理解,它是一种乐趣。
对Ajax的理解仍在逐步进行。如果有任何错误,我希望你能评论一下。