2012-04-20 27 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

相關問題