Javascript编写Asp时需要注意的一些地方

 

Javascript编写Asp时需要注意的一些地方

论坛里面有不少人在使用Javascript编写Asp,经常有人在论坛提问,为什么Asp对象在对比指定值时返回结果不对?现在在这里给大家写点关于使用Javascript编写Asp一些需要注意的地方。
最常见的问题:

 
Code:


Response.Write(Request.Form("Key") == "") 

返回的结果怎么都是"False"。在这里,我们使用typeof就可以发现:Request.Form("Key")返回的其实是一个object类型对象,而不是最终的值。所以,我们需要取出最终的值才能够做出正确的判断。可以使用如下解决方法:

 
Code:


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,直接当属性访问时返回的是一个字符串对象(值类型),作为一个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

下面说一下Session和Application。
我们常用的Session("Key"),返回的已经是最终值了,所以这个方法可以放心使用。顺便也提一下,Session的完整写法应该是:
Session.Contents.Item("Key")
也可以写成
Session.Contents("Key")
Contents对象好像有点多余,其实并非如此,某些时候我们还是需要用到它的,主要是用于Session的枚举和Session的Remove操作。如:

 
Code:


Session.Contents.Remove("Key");
Session.Contents.RemoveAll() 

Abandon方法不属于Contents,它是直接属于Session的一个方法,使用时需要注意这个。
Application同样也存在Contents对象,用法和Session相同。

下面说一下Js枚举Asp对象。
我们有时可能想知道,客户端到底提交了一些什么数据?Application或Session中存在一些什么数据?
在js中,我们通常使用for...in方式获取一个对象的所有属性,但是,在Asp中,这个方式对于Asp对象就无能为力了。怎么办呢?这个时候,我们可以使用枚举(Enumerator)和VBArray来获取:

 
Code:


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("<br>")); 

就写这些了,希望对刚刚开始学使用js编写asp的朋友们有些帮助。

时间: 2024-08-23 17:06:57

Javascript编写Asp时需要注意的一些地方的相关文章

用javascript编写asp应用--第一课--通览_ASP基础

第一课--通览 通览 在开始之前:(我们应该知道) ASP 代表Active Server Pages.ASP 出自Microsoft,它为开发动态的网页提供了一个中性的语言平台. 你的脚本使用普通的文本编写,然后以.asp的扩展名保存.当这些脚本被调用的时候,他们首先通过asp脚本翻译引擎,而这个引擎的作用就是把你的脚本和那些来自于浏览者,或者是数据库,或者是其他你认为合适的来源的信息组合在一起.根据我的主页上所列出的这些推测,我断言你已经知道怎样去创建一个以. asp结尾的文本文档了.我同样

用javascript编写asp应用--第一课--通览

第一课--通览 通览 在开始之前:(我们应该知道) ASP 代表Active Server Pages.ASP 出自Microsoft,它为开发动态的网页提供了一个中性的语言平台. 你的脚本使用普通的文本编写,然后以.asp的扩展名保存.当这些脚本被调用的时候,他们首先通过asp脚本翻译引擎,而这个引擎的作用就是把你的脚本和那些来自于浏览者,或者是数据库,或者是其他你认为合适的来源的信息组合在一起.根据我的主页上所列出的这些推测,我断言你已经知道怎样去创建一个以. asp结尾的文本文档了.我同样

编写ASP时用JScript好还是用VBScript好?

js|jscript|vbscript 用JScript界面清晰,代码简洁,理论上要好一点.但实际上我想不会快多少,ASP还是把大量的时间花在解析代码上了.而Microsoft把两种代码的处理速度应该不会相差多少.

编写ASP时用JScript好还是用VBScript好

js|jscript|vbscript     用JScript界面清晰,代码简洁,理论上要好一点.但实际上我想不会快多少,ASP还是把大量的时间花在解析代码上了.而Microsoft把两种代码的处理速度应该不会相差多少.

DreamWeaver编写ASP时如何修改代码?

  首先要清醒一点,什么人才可以修改. 一,本人只能修改自己的;二,管理员可以修改所有人的. (顺序是:先确认是正确登录,然后才是自己的资料出现,再接着你才可以修改,对吧.) 这里面的loginok.asp页面还在的吧.不在也不要紧.再做一遍,当作练习的. 好了吧.loginok.asp主要是个人信息页面,不同的用户显示不同的信息. 这个页要注意的:是一保护页面,要添加"限制对页的访问"的;当然相信你已经做了. 那接着就是显示记录,来!动手了! 步骤/方法 loginok.asp中&q

eclipse设置-eclipse编写js时出现空指针问题&amp;amp;quot;Requesting JavaScript AST from selection&amp;amp;quot;

问题描述 eclipse编写js时出现空指针问题"Requesting JavaScript AST from selection" An internal error occurred during: ""Requesting JavaScript AST from selection"". java.lang.NullPointerException. RT就是我在用Eclipse编辑js代码时,买次写return后就报出这样的错误,百度了一

在Visual J++中编写ASP COM组件

visual Java是一种以网络为中心的编程语言,许多只使用ASP脚本难以完成的任务可以用Java轻松地实现.同时,扩展ASP应用最好的方法莫过于加入COM组件.那么,可以利用Java为ASP开发组件吗?本文通过实例,说明了在Visual J++环境下开发COM组件的具体过程. 一.概述 自Java问世以来,各种开发工具.开发环境不断出现.这些环境和工具面向不同层次的用户,具有各自的优点.那么,使用Visual J++作为Java开发平台又有哪些优点呢?粗略地讲,这些优点包括: 熟悉的开发环境

结合JavaScript与ASP.NET Web窗体进行程序开发

ASP.NET为Web程序开发提供了新的范例.其中包括一系列基于服务器的控件,这些控件类似于HTML窗体中诸如文本框.按钮等元素.使用这些控件的问题是必须调用服务器.JavaScript为很多任务提供多种选择的机会,而这些过程不需要调用服务器.让我们来看结合JavaScript与ASP.NET所带来的强大功能. 性能是必需的调用服务器要求带宽和服务器处理时间,然而对一个可以享受高速流通的局域网程序将不会有任何问题,但是在广域网中就是不同的情况.一个因特网用户连接速度的不同主要取决于用户的拨号调制

javascript操作ASP.NET服务器控件

  这篇文章主要介绍了javascript操作ASP.NET服务器控件 的相关资料,需要的朋友可以参考下 在ASP.NET中使用js时,js获取DOM元素时,经常获取不到,这是因为获取的方法有误,现在介绍一方法,解决如何使用js获取ASP.NET控件在浏览器端生成html标签对应的id 1.获取服务器端控件在浏览器端生成的标签的id,即服务器控件对应的客户端html标签id 通过服务器端控件的ClientID属性可以获取到相应在浏览器即客户端html标签中对应的id值,获取方法如下 代码如下: