<!-- ---------------------------------------------------------------------
//
// Copyright 2001 Chordiant Software. All Rights Reserved.
//
// File: sessionemanager.htc
//
// Auther: Ryan Carroll
// Created: 13/11/2001
//
// Description: Implements a manager for user session settings.
//
// Changes log:
//-------------------------------------------------------------------- -->
<PUBLIC:COMPONENT tagname="sessionmanager" lightWeight="true">
<!-- Public Properties -->
<!-- Public Methods -->
<METHOD NAME="setSessionSetting" />
<METHOD NAME="getSessionSetting" />
<METHOD NAME="removeSessionSetting" />
<METHOD NAME="clearSessionSettings" />
<METHOD NAME="getAllSessionSettings" />
<!-- Public Events -->
<EVENT NAME="onError" ID="error" />
<EVENT NAME="onSessionSettingChanged" ID="sessionSettingChanged" />
<!-- Private Event Listeners -->
<ATTACH EVENT="ondocumentready" HANDLER="setDefaults" />
// { start - performance fix
<ATTACH EVENT="ondetach" HANDLER="cleanUp" />
// } end - performance fix
</PUBLIC:COMPONENT>
<SCRIPT LANGUAGE="jscript">
//+----------------------------------------------------------------------------
//
// Global Variables
//
//-----------------------------------------------------------------------------
var sessionSettings = new Array();
// { start - performance fix
// Detach event handlers. This should always be done for event handlers that was attached with the attachEvent method.
function cleanUp() {
if (window)
window.detachEvent("onbeforeunload", cleanUp);
sessionSettings = null;
}
// } end - performance fix
function sessionSettingObject(sSessionSettingName, sSessionSettingValue)
{
this.sessionSettingName = sSessionSettingName;
this.sessionSettingValue = sSessionSettingValue;
}
////////////////////////////////////////////////////////////////////////////////
// Methods Section //
////////////////////////////////////////////////////////////////////////////////
//+----------------------------------------------------------------------------
//
// Public Methods
//
//-----------------------------------------------------------------------------
//+----------------------------------------------------------------------------
//
// Function: setSessionSetting
//
// Description:
//
// Arguments: none
//
// Returns: nothing
//
//-----------------------------------------------------------------------------
function setSessionSetting( sSessionSettingName, sSessionSettingValue ) {
var oSessionSetting;
var oEvent;
try {
for(var i=0; i < sessionSettings.length; i++){
if(sessionSettings[i].sessionSettingName == sSessionSettingName){
oSessionSetting = sessionSettings[i];
oSessionSetting.sessionSettingValue = sSessionSettingValue;
break;
}
}
if(oSessionSetting == null){
oSessionSetting = new sessionSettingObject(sSessionSettingName, sSessionSettingValue);
sessionSettings[sessionSettings.length] = oSessionSetting;
}
oEvent = createEventObject();
oEvent.setAttribute("sessionSettingData", oSessionSetting);
sessionSettingChanged.fire(oEvent);
} catch(e) {
returnError(e.toString());
} finally {
oSessionSetting = null;
oEvent = null;
sSessionSettingName = null;
sSessionSettingValue = null;
}
}
//+----------------------------------------------------------------------------
//
// Function: getSessionSetting
//
// Description:
//
// Arguments: none
//
// Returns: nothing
//
//-----------------------------------------------------------------------------
function getSessionSetting( sSessionSettingName ) {
try {
for(var i=0; i < sessionSettings.length; i++){
if(sessionSettings[i].sessionSettingName == sSessionSettingName){
return sessionSettings[i].sessionSettingValue;
}
}
return null;
} catch(e) {
returnError(e.toString());
return null;
} finally {
sSessionSettingName = null;
}
}
//+----------------------------------------------------------------------------
//
// Function: removeSessionSetting
//
// Description:
//
// Arguments: none
//
// Returns: nothing
//
//-----------------------------------------------------------------------------
function removeSessionSetting(sSessionSettingName) {
var oRemovedSessionSetting;
try {
for(var i=0; i < sessionSettings.length; i++){
if(sessionSettings[i].sessionSettingName == sSessionSettingName){
oRemovedSessionSetting = sessionSettings.splice(i,1);
return oRemovedSessionSetting;
}
}
return null;
} catch(e) {
returnError(e.toString());
return null;
} finally {
oRemovedSessionSetting = null;
sSessionSettingName = null;
}
}
//+----------------------------------------------------------------------------
//
// Function: clearSessionSettings
//
// Description:
//
// Arguments: none
//
// Returns: nothing
//
//-----------------------------------------------------------------------------
function clearSessionSettings() {
var oRemovedSessionSettings;
try {
oRemovedSessionSettings = sessionSettings.splice(0,sessionSettings.length);
} catch(e) {
returnError(e.toString());
} finally {
oRemovedSessionSettings = null;
}
}
//+----------------------------------------------------------------------------
//
// Function: getAllSessionSettings
// Description:
//
// Arguments: none
//
// Returns: nothing
//
//-----------------------------------------------------------------------------
function getAllSessionSettings() {
var oAllSessionSettings;
try {
oAllSessionSettings = new Array;
for(var i=0; i < sessionSettings.length; i++){
oAllSessionSettings[oAllSessionSettings.length] = sessionSettings[i];
}
return oAllSessionSettings;
} catch(e) {
returnError(e.toString());
return null;
} finally {
oAllSessionSettings = null;
}
}
//+----------------------------------------------------------------------------
//
// Private Methods
//
//-----------------------------------------------------------------------------
//+----------------------------------------------------------------------------
//
// Function: setDefaults
//
// Description: Called during the initialization of the behavior. Sets
// the required default settings, and attaches the
// onpropertychange event (not done in the header to prevent
// firing the event during initialization).
//
// Arguments: none
//
// Returns: nothing
//
//-----------------------------------------------------------------------------
function setDefaults()
{
if(element.document.media != "print") {
// Attach the onpropertychange event
attachEvent("onpropertychange", doPropChange);
}
// { start - performance fix
window.attachEvent("onbeforeunload", cleanUp);
// } end - performance fix
}
//+----------------------------------------------------------------------------
//
// Function: doPropChange
//
// Description: Runs on the onpropertychange event and calls the necessary
// functions to correctly handle the property that was just
// changed.
//
// Arguments: none
//
// Returns: nothing
//
//-----------------------------------------------------------------------------
function doPropChange()
{
var propertyName;
try {
propertyName = window.event.propertyName;
// Handle CSS property changes by calling necessary functions, setting
// variables, and/or setting styles
//
if (propertyName.substring(0,5) == "style")
{
// Handle Style changes
// switch(propertyName)
// {
// case "style.zIndex" :
// break;
// }
}
else
{
//
// Detach the onpropertychange event to prevent it from firing while
// the changes are handled
//
detachEvent("onpropertychange", doPropChange);
// Handle Property changes
switch(propertyName)
{
//case "leftBoundary" :
// leftBoundary = parseInt(leftBoundary);
// setLeftBoundary(leftBoundary);
// break;
default :
returnError(propertyName + " not a valid property");
break;
}
// Re-attach the onpropertychange event
attachEvent("onpropertychange", doPropChange);
}
} catch(e) {
returnError(e.toString());
} finally {
propertyName = null;
}
}
//+----------------------------------------------------------------------------
//
// Function: returnError
//
// Description: Fires the error event, along with a descriptive text
// message.
//
// Arguments: sMsg - descriptive text message
//
// Returns: nothing
//
//-----------------------------------------------------------------------------
function returnError(sMsg)
{
var oEvent;
try {
oEvent = createEventObject();
oEvent.setAttribute("error", sMsg);
error.fire(oEvent);
//alert(sMsg);
} finally {
oEvent = null;
sMsg = null;
}
}
</SCRIPT>
分享到:
相关推荐
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。
该视频主要讲述了Python中文件的读写操作和pandas库中的subt函数来处理CSV文件。 在Python中,文件的读写操作需要使用open函数打开文件,并指定路径和模式。读取文件时,可以使用f.read()方法读取内容,并使用f.close()方法关闭文件。写入文件时,可以使用f.write()方法写入内容,并使用f.close()方法关闭文件。视频还介绍了如何在文件中进行换行操作,以及如何将文件中的内容进行读取和写入。 此外,视频还强调了在进行文件操作时需要注意的一些细节和技巧,例如文件的编码格式、内存不足问题、文件的访问权限、写入速度变慢问题等。视频还介绍了如何使用with语句来自动关闭文件,以及如何使用os模块中的函数来处理文件和文件夹。 另外,视频还讲述了如何使用pandas库中的subt函数来处理CSV文件。通过使用read函数将CSV文件读入,然后使用subt函数按照行和列进行划分。在划分时,可以根据需要选择不同的分隔符,如逗号、制表符等。通过subt函数可以将CSV文件切分成多个元素,然后将这些元素存储在一个list中。视频还展示了如何将这个list进行组合,
《2023年度TikTok电商行业趋势白皮书》.zip
网络攻防课程seed-labs实验-DNS_Attacks.zip
1. sql 语句查询sql server 数据库表结构 2. sql 语句查询sql server 数据库临时表结构 3. 可自由扩展字段,主要提供一个查询思路 4. 包括表名,列名,字段类型、主键表示、字段说明等。
ASP.NET实验室预约管理系统源码 该系统的系统角色有三个:学生、教师、管理员,系统功能介绍如下: 学生功能 学生主要是四个功能。注册功能、查询功能、预约功能、学生资料管理功能。 (1)注册功能。学生进入登录界面后,如果没有注册,要先注册。注册的用户名是学生的学号。注册后才可以登录,学生在此功能里还能够修改、删除个人资料。 (2)查询功能。学生在进入主界面后,能够对想预约的课程查询或教师查询。由于老师可能教多个课程,所以有个二级选择目录。 (3)预约功能。当学生查询好信息后,就要对想要预约的实验开始预约。 (4)学生资料管理功能。学生在注册后,可以通过登录,修改自己的个人信息。 教师功能 教师也有四个功能。注册功能、查询功能、预约功能,教师的资料管理功能。只是教师和学生所使用功能的方式不一样。 (1)注册功能。老师进入登录界面后,如果没有账号,也要先注册账号,同时可以对自己的资料进行修改、删除、填加。 (2)查询功能。教师的查询功能主要是对实验室类别、项目、预约情况的查询。类别查询主要是查询实验室房间的信息;项目查询主要是查看能实验该项目的房间信息;预约查询主要是对实验室预约状况的查
java结合html实现儿童节庆祝代码
操作系统课程实现Shell.zip
一带一路下的交通发展(16组).pptx
通过MATLAB/simulink模块,构建光伏特性曲线(光照强度/温度)构建U-P以及U-I曲线,可以通过simulink模型设置光伏发电板串并联数量、光伏参数(开路电压,开路电流、最大功率点电压、最大功率点电流以及最大功率)、温度系数等,可以得到完美的U-P以及U-I曲线,通过m文件能够修改坐标轴的x轴及y轴坐标的范围。 模型使用方法,首先在MATLAB中添加文件路径,然后在MATLAB工作区中打开m文件以及slx文件,然后在MATLAB中直接运行m文件,然后回弹出相应的U-P以及U-I曲线,通过m文件能够修改光照强度的变化范围、温度的变化范围,总共可以得到光照强度以及温度共四个U-P以及U-I曲线图。
python爬虫案例
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。
农业农村部特聘审计员推荐表.doc
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。
农垦农产品质量追溯系统建设项目验收申请书目录.doc
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。
本人本科毕业论文创建的算例
苹果刷机完整教程【中英双语对照】_20231121153540.zip
删除顺序表中指定值的所有元素