这个页面最奇怪的地方在于,无论数据的多少,加载的时间都在十六秒左右,首先描述一下这个JSP页面有大量的JS代码,有少部分JAVA代码,采用table布局,最内的table为显示数据用的,为了现实数据而采用Struts1标签的:iterate、logic:equal等,每次加载这个table都十多秒。开始我怀疑是SQL语句的问题,于是把HQL语句换为了SQL语句到PL/SQL中执行,证明了不是SQL语句的原因,不过该操作是一个牵涉了好几张表的查询,google上说是因为JS加载引起的,建议把JS代码放到最后,但是加载时间没变化,高手们!救命啊!
2:表结构怎么样?
3:查询语句是什么?
4:页面的 DOM 结构是什么?
5:数据如何呈现?
HQL:select mainSheet from mainSheet in class com.hollycrm.unicom.sheet.lightweight.MainSheetInfo left join mainSheet.dealSheetInfos ds where mainSheet.sheetFlowNO is not null and ds.sendTime = (select max(deal.sendTime) from deal in class com.hollycrm.unicom.sheet.lightweight.DealSheetInfo where deal.mainSheetFlowNO = mainSheet.sheetFlowNO) and mainSheet.status = '23' and mainSheet.categoryID in ('1','2','3','6','7') and mainSheet.handleDept = 'ff8080812dc1758a012dc5698255018a' order by ds.dealTime desc
其中的条件是动态的,不过我列出了一个典型的查询;
表都为一对多,MainSheetInfo为一方,数据的输出多用的是 <logic:iterate id="item" name="resultList" property="rowList" indexId="index" scope="request"></logic:iterate>迭代用<bean:write></bean:write>显示,
楼主,页面加载问题与很多问题相关··如果你拿到别的机子上运行·估计时间就会快些了·这和服务器相关··当然·最直接的关系就是你的HQL写得不好·导致了大量的甬余数据··
这句是代码中典型的HQL语句!其中有很多and都是在判断后根据条件产生的,希望大家能帮忙优化下!