⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pm.asp

📁 网上商城的设计与实现
💻 ASP
📖 第 1 页 / 共 3 页
字号:
<SCRIPT RUNAT=SERVER Language="JavaScript">
//*****************************************************************
// Microsoft Script Library
// Visual InterDev 6.0 Scripting Object Model framework for server.
//
// Copyright 1998 Microsoft Corporation. All Rights Reserved.
//*****************************************************************
@if (@trace)
	@set @trace_events = true;
	@set @trace_warnings = true;
@end
//*****************************************************************
// function StartPageProcessing()
//	This is the method which starts page processing.
//	The following sequence of events will occur :
//		1. create thisPage object ( programming model object )
//		2. invoke all constructors on the page  (  xxx_ctor functions )
//		3. fire 'oninit' events
//		4. fire 'onenter' events
//		5. dispatch to appropriate server method
//		6. return TRUE if processing is complete
//		   return FALSE to continue processing of page
//*****************************************************************
function StartPageProcessing()
{
	if (typeof(thisPage) != 'object')
		thisPage = new _SOMObject;

	if (typeof(RuntimeObject) != 'undefined')
	{
		var ctors = RuntimeObject('*_ctor');
		for (var name in ctors)
		{	// invoke all constructor functions  ( xxx_ctor functions )
			if (typeof(ctors[name]) == 'function')
				ctors[name]();
		}
	}
	else
	{	// display warning
		var strWarning = '<br><hr><b>WARNING: Web server "' + Request.ServerVariables('SERVER_NAME') + '" requires an updated JSCRIPT.DLL.';
		strWarning += '<br>The Visual InterDev 6.0 Scripting Object Model requires JSCRIPT.DLL Version 4.0.0.2405 or greater.';
		Response.write(strWarning);
	}

	@if (@trace_events)
		thisPage._traceEvent('thisPage',PAGE_ONINIT);
	@end
	thisPage._objEventManager.fireEvent(PAGE_ONINIT);
	@if (@trace_events)
		thisPage._traceEvent('thisPage',PAGE_ONENTER);
	@end
	thisPage._objEventManager.fireEvent(PAGE_ONENTER);

	thisPage.dispatch();
	
	if (!thisPage._bEndPageProcessing)
	{
		@if (@trace_events)
			thisPage._traceEvent('thisPage',PAGE_ONSHOW);
		@end
		thisPage._objEventManager.fireEvent(PAGE_ONSHOW);
	}
	  	
	if (thisPage._bEndPageProcessing)
		EndPageProcessing();
	
	return thisPage._bEndPageProcessing;
}

//*****************************************************************
// function EndPageProcessing()
//	This is the method which ends page processing.
//	The following sequence of events will occur :
//		1. if execute method was invoked, do nothing
//		2. fire 'onexit' events
//		3. invoke all destructors on the page  (  xxx_dtor methods )
//		4. if redirect defined, invoke redirect, otherwise
//			1. persist state in hidden field
//
//*****************************************************************
function EndPageProcessing()
{
	if (typeof(thisPage) == 'object' && !thisPage._bExecuteMethodInvoked)
	{
		if (thisPage._objEventManager != null)
		{
			@if (@trace_events)
				thisPage._traceEvent('thisPage',PAGE_ONEXIT);
			@end
			thisPage._objEventManager.fireEvent(PAGE_ONEXIT);
		}

		var dtors = RuntimeObject('*_dtor');
		for (var name in dtors)
		{	// invoke all destructor functions  ( xxx_dtor functions )
			if (typeof(dtors[name]) == 'function')
				dtors[name]();
		}
		
		if (thisPage._redirect != '')
			Response.redirect(thisPage._redirect);

		thisPage._generateHiddenFields();
	}
}

//*****************************************************************
// function _SOMObject()
//	Constructor function for the 'thisPage' object.
//	This object provides the programming model services for the
//	page and is instantiated as the 'thisPage' object.
//
//*****************************************************************
function _SOMObject()
{	
	//events
	PAGE_ONINIT = 'oninit';
	PAGE_ONENTER = 'onenter';
	PAGE_ONSHOW = 'onshow';
	PAGE_ONEXIT = 'onexit';

	//constants
	PAGE_NAVIGATE = 'navigate';
	PAGE_EXECUTE = 'execute';
	
	//public members
	this.createDE = _SOM_createDE;
	this.dispatch = _SOM_dispatch;
	this.invokeMethod = _SOM_invokeMethod;
	this.navigateURL = _SOM_navigateURL;
	this.registerMethod = _SOM_registerMethod;
	this.registerVTable = _SOM_registerVTable;
	this.setState = _SOM_setState;
	this.getState = _SOM_getState;
	this.persistState = _SOM_persistState;
	this.unpersistState = _SOM_unpersistState;
	this.isStatePersisted = _SOM_isStatePersisted;
	this.advise = _SOM_advise;
	this.unadvise = _SOM_unadvise;
	this.startPageContent = _SOM_startPageContent;
	this.endPageContent = _SOM_endPageContent;
	this.isDHTMLBrowser = _SOM_isDHTMLBrowser;
	this.firstEntered = (Request.Form('_method').Item == null);

	//private members
	this._dispatchGET = _SOM__dispatchGET;
	this._dispatchPOST = _SOM__dispatchPOST;
	this._buildURL = _SOM__buildURL;
	this._extractValue = _SOM__extractValue;
	this._generateHiddenFields = _SOM__generateHiddenFields;
	this._bDECreated = false;
	this._bPageContentStarted = false;
	this._bEndPageProcessing = false;
	this._bExecuteMethodInvoked = false;
	this._vtableNavigate = null;
	this._vtableExecute = null;
	this._objState = this.unpersistState('thisPage');
	if (this._objState == null)
		this._objState = new Object;
	this._objStateObjects = null;
	this._location = escape(Request.ServerVariables('SCRIPT_NAME'));
	this._redirect = '';
	this._objEventManager = CreateEventManager();
	this._objEventManager.adviseDefaultHandler('thisPage',PAGE_ONENTER);	
	this._objEventManager.adviseDefaultHandler('thisPage',PAGE_ONSHOW);	
	this._objEventManager.adviseDefaultHandler('thisPage',PAGE_ONEXIT);	
	this.registerMethod('_EM__onclientevent',_EM__onclientevent);

@if (@debug)
	this._reportError = _SOM__reportError;
@end
@if (@trace_events)
	this._trace_on = true;
	this._traceEvent = _SOM__traceEvent;
@end
@if (@trace_warnings)
	this._trace_on = true;
	this._traceWarning = _SOM__traceWarning;
@end

	//scope implementation to _SOMObject constructor function

	//*****************************************************************
	// function _SOM_createDE()
	//	Create the data environment object as DE
	//*****************************************************************
	function _SOM_createDE()
	{
		if (!this._bDECreated)
		{
			DE = Server.CreateObject('DERuntime.DERuntime');
			DE.Init(Application('DE'));
			this._bDECreated = true;
		}
	}

	//*****************************************************************
	// function _SOM_dispatch()
	//	This function dispatches to the method indicated by the URL.
	//*****************************************************************
	function _SOM_dispatch()
	{
		var bDispatched = false;
		var requestMethod = Request.ServerVariables('REQUEST_METHOD').Item;
		if (requestMethod == 'GET')
			bDispatched = this._dispatchGET();
		else if (requestMethod == 'POST')
			bDispatched = this._dispatchPOST();

		// output client-side thisPage when navigating within this ASP
		if (!this._bExecuteMethodInvoked && this._redirect == '')
			this.startPageContent(0);
		return bDispatched;
	}

	//*****************************************************************
	// function _SOM_invokeMethod(url,method,args)
	//	This function navigates to the method indicated.
	//*****************************************************************
	function _SOM_invokeMethod(url,method,args)
	{
		this.navigateURL(this._buildURL(url,method,args));
	}

	//*****************************************************************
	// function _SOM_navigateURL(url)
	//	This function navigates to the URL indicated.
	//*****************************************************************
	function _SOM_navigateURL(url)
	{	// optimize to dispatch when URL is this file
		this._redirect = url;
		EndPageProcessing();
	}

	//*****************************************************************
	// function _SOM_registerMethod(strName,fPtr,mType)
	//	Register the given name/function as an exported server method.
	//	The mType should indicate either PAGE_NAVIGATE or PAGE_EXECUTE
	//*****************************************************************
	function _SOM_registerMethod(strName,fPtr,mType)
	{	// default mType = PAGE_NAVIGATE if not provided
		if (typeof(strName) == 'string' && typeof(fPtr) == 'function')
		{
			if (mType == PAGE_EXECUTE)
			{
				if (this._vtableExecute == null)
					this._vtableExecute = new Object;
				this._vtableExecute[strName] = fPtr;
				return true;
			}
			if (mType == PAGE_NAVIGATE || mType == null)
			{
				if (this._vtableNavigate == null)
					this._vtableNavigate = new Object;
				this._vtableNavigate[strName] = fPtr;
				return true;
			}
		}
		return false;
	}

	//*****************************************************************
	// function _SOM_registerVTable(objVTable,mType)
	//	Register the given object of function ptrs as exported methods.
	//	The mType should indicate either PAGE_NAVIGATE or PAGE_EXECUTE
	//*****************************************************************
	function _SOM_registerVTable(objVTable,mType)
	{	// default mType = PAGE_NAVIGATE if not provided
		if (typeof(objVTable) == 'object')
		{
			if (mType == PAGE_EXECUTE)
			{
				if (this._vtableExecute == null)
					this._vtableExecute = new Object;
				for (var name in objVTable)
				{
					if (typeof(objVTable[name]) == 'function')
						this._vtableExecute[name] = objVTable[name];
				}
				return true;
			}
			if (mType == PAGE_NAVIGATE || mType == null)
			{
				if (this._vtableNavigate == null)
					this._vtableNavigate = new Object;
				for (var name in objVTable)
				{
					if (typeof(objVTable[name]) == 'function')
						this._vtableNavigate[name] = objVTable[name];
				}
				return true;
			}
		}
		return false;
	}

	//*****************************************************************
	// function _SOM_setState(strName,value)
	//	Stores the given value as state using the given name as a key.
	//*****************************************************************
	function _SOM_setState(strName,value)
	{
		if (this._objState == null)
			this._objState = new Object;
		this._objState[strName] = value;
	}

	//*****************************************************************
	// function _SOM_getState(strName)
	//	Retrieves the given value for the state of given name.
	//*****************************************************************

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -