ColdFusion & jQuery 异步服务代理

ColdFusion cfmproxy.cfm 代码:

	/**
	* @hint 返回 ajax 提交的请求对象
	* @returntype any
	*/
	function getAjaxRequest()
	{
		var content = getRequestContent();
		if (content == "" && IsDefined("URL.p")) {
			content = URL.p;
		}
		
		if (IsJSON(content)) 
		{
			return DeserializeJSON(content);
		}
		else {
			return "";
		}
	}

	/**
	* @hint 返回页面的请求内容
	* @returntype string
	*/		
	function getRequestContent()
	{
		var result = "";
		var httpRequest = GetPageContext().getRequest();
		var contentLength = httpRequest.getContentLength();
		if (contentLength GT 0) 
        {
			byteArray = getByteArray(contentLength);	
			httpRequest.getInputStream().readLine(byteArray, 0, contentLength);
			result = ToString(createObject("java", "java.lang.String").init(byteArray));
        }		
		return result;
	}	


<cfprocessingdirective pageencoding="utf-8" />
<cftry>
	<cfscript>	
        cfmResult = {};	
        cfmResult.success = false;
		
		cfmInfo = $Utils.getAjaxRequest();
    </cfscript>
    <cfif IsStruct(cfmInfo) And StructKeyExists(cfmInfo, "cfmpage") And StructKeyExists(cfmInfo, "method")>
        <cfinclude template="#cfmInfo.cfmpage#"/>        
        <cfscript>			
			if (StructKeyExists(Variables, cfmInfo.method)) 
			{
				method = Variables[cfmInfo.method];
				if (IsDefined("cfmInfo.arguments")) 
				{
					cfmResult.data = method(argumentCollection = cfmInfo.arguments);
				}
				else {
					cfmResult.data = method();
				}
				cfmResult.success = true;
			}
			else {
				cfmResult.data = "请求的方法不存在";	
			}
        </cfscript>	
	<cfelse>
        <cfset cfmResult.data = "请求格式错误">
	</cfif>
<cfcatch type="any">
	<cfset cfmResult.data = cfcatch.Message />
    <cfif _$ReturnExceptionDetail{1}gt;
		<cfset cfmResult.Exception = cfcatch>
	</cfif>
</cfcatch>
</cftry>

<cfcontent type="application/json; charset=utf-8"/>
<cfoutput>#SerializeJSON(cfmResult)#</cfoutput>


客户端 jQuery 代码:

    _postCFProxy: function (request) {
        var dtd = jQuery.Deferred();
        jQuery.ajax({
            type: "POST",
            url: request.url,
            contentType: "application/json",
            data: jQuery.toJSON(request)
        })
        .done(function (data, textStatus, jqXHR) {
            if (data.SUCCESS) {
                dtd.resolve(data.DATA);
            }
            else {
                dtd.reject(data);
            }
        })
        .fail(function (jqXHR, textStatus, errorThrown) {
            dtd.reject({ DATA: jqXHR.responseText }, jqXHR);
        });

        return dtd.promise();
    },

    _callcfm: function (cfm, method, params) {
        var cfminfo = {
            url: "cfmproxy.cfm",
            cfmpage: cfm,
            method: method
        };

        if (params) {
            cfminfo.arguments = params;
        }

        return this._postCFProxy(cfminfo);
    }


【SCI复现】含可再生能源与储能的区域微电网最优运行:应对不确定性的解鲁棒性与非预见性研究(Matlab代码实现)内容概要:本文围绕含可再生能源与储能的区域微电网最优运行展开研究,重点探讨应对不确定性的解鲁棒性与非预见性策略,通过Matlab代码实现SCI论文复现。研究涵盖多阶段鲁棒调度模型、机会约束规划、需求响应机制及储能系统优化配置,结合风电、光伏等可再生能源出力的不确定性建模,提出兼顾系统经济性与鲁棒性的优化运行方案。文中详细展示了模型构建、算法设计(如C&amp;CG算法、大M法)及仿真验证全过程,适用于微电网能量管理、电力系统优化调度等领域的科研与工程实践。; 适合人群:具备一定电力系统、优化理论和Matlab编程基础的研究生、科研人员及从事微电网、能源管理相关工作的工程技术人员。; 使用场景及目标:①复现SCI级微电网鲁棒优化研究成果,掌握应对风光负荷不确定性的建模与求解方法;②深入理解两阶段鲁棒优化、分布鲁棒优化、机会约束规划等先进优化方法在能源系统中的实际应用;③为撰写高水平学术论文或开展相关课题研究提供代码参考和技术支持。; 阅读建议:建议读者结合文档提供的Matlab代码逐模块学习,重点关注不确定性建模、鲁棒优化模型构建与求解流程,并尝试在不同场景下调试与扩展代码,以深化对微电网优化运行机制的理解。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值