2012-04-20 81 views
1

我打算在JavaScript中编写Global.asa文件。当会话或应用程序结束时,我需要对数据库进行更改。具体来说,我需要分解一个字符串并在Global.asa函数的查询中使用它。那部分根本不会让我感到困惑。只是关于传递会话变量作为参数的部分。我想象我的Global.asa看起来是这样的:
ASP问题:是否可以将会话变量作为参数传递给Global.asa文件中的函数?

(假设这两个变量“变量1”和“变量2”是会话变量)

<script language="JScript" runat="Server"> 
function Application_OnStart() { 
} 

function Application_OnEnd(variable1) { 
} 

function Session_OnStart() { 
} 

function Session_OnEnd(variable2) { 
} 
</script> 

所以,我不知道是否有什么我问的问题甚至是可行的。如果是这样,任何提示?请记住,我在ASP中工作,而不是ASP.NET。另外,我使用服务器端代码有点新,所以请原谅我的无知。

回答

0

不,你的建议是不可行的。

global.asa文件中的函数是事件的回调函数。函数得到调用,全部没有参数。

您可以使用Session对象来做你想做的事。

在你的代码,你可以这样设置会话变量:

session("userid") = 856 

在你的global.asa然后你可以使用:

variable1 = session("userid") 
+0

谢谢!这回答了我的问题。 – user92 2012-04-20 21:25:37

-1

你有没有考虑过为你的Global.asa使用VBScript?我从来没有在JavaScript编码的Global.asa中,但你能代码它VB和使用Session或应用程序级的变量:

 
<SCRIPT LANGUAGE=VBScript RUNAT=Server> 

Sub Application_OnStart() 
    'initialize application level variables 
    Application("ConnectionString") = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.mappath("access_db/mydb.mdb") 
End Sub 

Sub Application_OnEnd() 
    Application("ConnectionString") = "" 
End Sub 

Sub Session_OnStart() 
    'initialize session level variables 
    Session("UserIP") = Request.ServerVariables("REMOTE_ADDR") 
End Sub 

Sub Session_OnEnd() 
    Session("UserIP") = "" 
End Sub 

不知道,如果你可以传递一个变量到预定义功能,例如,但您可以在网站上的任何位置使用会话或应用程序变量,包括这些功能。

+0

您可以使用所有可用的脚本语言在全球。 asa文件。这包括JScript。您无法将变量传递给这些函数。 – 2012-04-20 20:49:02

相关问题