CF应用程序向桌面应用程序返回XML响应。 XML响应可以在0.5到3秒内完成。 XML包含压缩的附件,然后是base64编码的附件。一旦我们的附件略大一些,比如5MB就会开始花费超过一分钟的时间来响应。不是真正的代码,但这就是我正在做的事情(CF2016和IIS):
<cfxml variable="myXML">
<sample Status="NewJob" Type="response">
<NewJob>
<jobNumber>3894743</jobNumber>
<Rate>0</Rate>
<doc><![CDATA[UEsDBBQACAAIAMl BASE_64_CONTENT]]></doc>
</NewJob>
</sample>
</cfxml>
<cfset tempVar = xmlParse(trim(myXML))>
<cfcontent type="text/xml">
<cfoutput>#TempVar#</cfoutput>
虽然文件是压缩的,但有时压缩不大,压缩后8MB文件约为7MB。页面总重量约为9MB +
可以将最大输出缓冲区从1024kb增加到4096KB甚至2048kb吗?这样做有什么后果吗? CF或IIS上的任何其他设置都可以调整?
答案 0 :(得分:2)
您为什么使用xmlParse()
? <cfxml>
标记已生成XML文档。现在,您的代码将XML文档(xmlParse
的参数)字符串化,然后将其解析为XML文档(返回xmlParse
),然后再次对其进行字符串化(输出TempVar
)。简化您的代码:
<cfxml variable="myXML">
<sample Status="NewJob" Type="response">
<NewJob>
<jobNumber>3894743</jobNumber>
<Rate>0</Rate>
<doc><![CDATA[UEsDBBQACAAIAMl BASE_64_CONTENT]]></doc>
</NewJob>
</sample>
</cfxml>
<cfcontent type="text/xml">
<cfoutput>#myXML#</cfoutput>
现在,您的XML文档只进行一次字符串化,无需任何解析。这样可以显着加快处理速度。