最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Javascript编写Asp时需要注意的一些地方
时间:2022-07-02 22:48:05 编辑:袖梨 来源:一聚教程网
Javascript编写Asp时需要注意的一些地方
论坛里面有不少人在使用Javascript编写Asp,经常有人在论坛提问,为什么Asp对象在对比指定值时返回结果不对?现在在这里给大家写点关于使用Javascript编写Asp一些需要注意的地方。
最常见的问题:
Code:
返回的结果怎么都是"False"。在这里,我们使用typeof就可以发现:Request.Form("Key")返回的其实是一个object类型对象,而不是最终的值。所以,我们需要取出最终的值才能够做出正确的判断。可以使用如下解决方法:
Code:
所以,取值时我们如果使用完整的取值方式,就不会出现那些奇怪的现象。
下面说一些Asp中取值的例子:
注意这里的Request.Form.Item,直接当属性访问时返回的是一个字符串对象(值类型),作为一个js的“function”使用时返回的是一个object。
Request.Cookies、Request.QueryString、Request.ServerVariables的取值写法同上。
vbs中的简写Request("Key")在javascript中,对应的是Request.Item("Key")
下面说一下Session和Application。
我们常用的Session("Key"),返回的已经是最终值了,所以这个方法可以放心使用。顺便也提一下,Session的完整写法应该是:
Session.Contents.Item("Key")
也可以写成
Session.Contents("Key")
Contents对象好像有点多余,其实并非如此,某些时候我们还是需要用到它的,主要是用于Session的枚举和Session的Remove操作。如:
Code:
Abandon方法不属于Contents,它是直接属于Session的一个方法,使用时需要注意这个。
Application同样也存在Contents对象,用法和Session相同。
下面说一下Js枚举Asp对象。
我们有时可能想知道,客户端到底提交了一些什么数据?Application或Session中存在一些什么数据?
在js中,我们通常使用for...in方式获取一个对象的所有属性,但是,在Asp中,这个方式对于Asp对象就无能为力了。怎么办呢?这个时候,我们可以使用枚举(Enumerator)和VBArray来获取:
Code:
就写这些了,希望对刚刚开始学使用js编写asp的朋友们有些帮助。
最常见的问题:
Response.Write(Request.Form("Key") == "")
返回的结果怎么都是"False"。在这里,我们使用typeof就可以发现:Request.Form("Key")返回的其实是一个object类型对象,而不是最终的值。所以,我们需要取出最终的值才能够做出正确的判断。可以使用如下解决方法:
var Nothing; // 兼容不存在undefined的老版本jscript
Response.Write(Request.Form("Key").Item == Nothing);
Response.Write(Request.Form("Key").Item === Nothing);
// IE 5.5 之后undefined已经是一个常量,可直接访问(JScript版本是跟随IE升级的)
Response.Write(Request.Form("Key").Item == undefined);
Response.Write(Request.Form("Key").Item === undefined);
Response.Write(Request.Form("Key").Item == null);
所以,取值时我们如果使用完整的取值方式,就不会出现那些奇怪的现象。
下面说一些Asp中取值的例子:
QUOTE:
例:Request.Form("Key")
取值:Request.Form.Item("Key").Item
或:Request.Form("Key").Item
取值:Request.Form.Item("Key").Item
或:Request.Form("Key").Item
注意这里的Request.Form.Item,直接当属性访问时返回的是一个字符串对象(值类型),作为一个js的“function”使用时返回的是一个object。
Request.Cookies、Request.QueryString、Request.ServerVariables的取值写法同上。
vbs中的简写Request("Key")在javascript中,对应的是Request.Item("Key")
QUOTE:
例:rs("FiledName")
取值:rs.Fields.Item("FiledName").Value
或:rs.Fields("FiledName").Value
或:rs("FiledName").Value
取值:rs.Fields.Item("FiledName").Value
或:rs.Fields("FiledName").Value
或:rs("FiledName").Value
下面说一下Session和Application。
我们常用的Session("Key"),返回的已经是最终值了,所以这个方法可以放心使用。顺便也提一下,Session的完整写法应该是:
Session.Contents.Item("Key")
也可以写成
Session.Contents("Key")
Contents对象好像有点多余,其实并非如此,某些时候我们还是需要用到它的,主要是用于Session的枚举和Session的Remove操作。如:
Session.Contents.Remove("Key");
Session.Contents.RemoveAll()
Abandon方法不属于Contents,它是直接属于Session的一个方法,使用时需要注意这个。
Application同样也存在Contents对象,用法和Session相同。
下面说一下Js枚举Asp对象。
我们有时可能想知道,客户端到底提交了一些什么数据?Application或Session中存在一些什么数据?
在js中,我们通常使用for...in方式获取一个对象的所有属性,但是,在Asp中,这个方式对于Asp对象就无能为力了。怎么办呢?这个时候,我们可以使用枚举(Enumerator)和VBArray来获取:
var app = new Enumerator(Application.Contents);
var arr = new Array;
while(!app.atEnd())
{
var value = Application.Contents.Item(app.item());
if(typeof value == "unknown") value = (new VBArray(value)).toArray() + " (VBArray)";
else value += " (" + typeof value + ")";
arr.push(app.item() + " : " + value);
app.moveNext();
}
Response.Write(arr.join("
"));
就写这些了,希望对刚刚开始学使用js编写asp的朋友们有些帮助。
相关文章
- 原神欧洛伦怎么培养 原神欧洛伦培养攻略介绍 11-22
- 炉石传说跳费大哥德卡组怎么样 炉石传说跳费大哥德卡组推荐介绍 11-22
- 蛋仔派对曙光龙女芙瑞怎么样 11-22
- 原神恰斯卡怎么养成 11-22
- 光遇11.22免费魔法有什么 11-22
- 光遇11.22大蜡烛在哪里 11-22