使用 Ajax 发送请求到操作,结果类型为 json。使用 struts2 的 json 插件。结果是正确的,但需要很长时间。
下面是struts.xml的内容:
<package name="FoodCompositionSearchajax" extends="json-default">
<action name="addSearchCondition" class ="com.fmOnline.action.FmzxMenuCompositionSearchAction" enter code here
method="addSearchCondition">
<result name="success" type="json">
<param name="excludeProperties">
showList\[\d+\]\.foodStr,showList\[\d+\]\.nourishStr,
showList\[\d+\]\.searchFunction,showList\[\d+\]\.num1,
showList\[\d+\]\.num2,showList\[\d+\]\.danwei,
showList\[\d+\]\.nourishname,showList\[\d+\]\.resultmap,
dataList, foodList, foodStr, map, nourishList, nourishStr,
num1, num2, paramList, searchDes, searchFun
</param>
</result>
</action>
</package>
<param name="includeProperties">
不起作用,因此请改用<param name="excludeProperties">
。
结果 json 包含一个列表(showList,包含 2 个 String 属性,元素数量从 1 到 6 不等)和一个 String。我已经从客户端页面中的 javascript 和<param name="excludeProperties">
作品中提醒了结果内容。
json 结果为: {"msg":null, "showList":[{"id":1, "searchDes":"淀粉中的蛋白质含量>=11"}, {"id":2,"searchDes" :"豆类中的蛋白质含量>=11"}, {"id":3, "searchDes":"禽类中的蛋白质含量>=11"}]}
起初,我使用<result type="json"/>
. 我虽然长时间的原因可能是一个太大的对象。然后我尝试@JSON(serialize=false) 对get方法进行反序列化,使这些方法在java到json的转换过程中不会执行。最后我使用了 excludeProperties。他们都成功地返回了较小的对象,但未能缩短时间。正常的jsp页面响应时间不错
问题:
在本地主机上运行项目时,响应时间短。
在远程服务器上运行时,客户端响应需要 10 秒以上。操作数据库确实很快,似乎需要很长时间才能将结果从服务器发送到浏览器。
当结果为空时,响应时间很短,即使来自远程服务器。
如何缩短响应时间?