我对 Kendo-ui 很陌生。我一直在努力创建一个包含 kendo-ui 选项卡的页面。每个选项卡都有至少一个 iframe,它从源(它们是 java 控制器)加载内容。这是我的jsp的修剪版本
<div class="demo-section k-content">
<div id="tabstrip">
<ul>
<%} if(helpFlag.equals("true") || helpFlag.equals("1")) {%>
<li>Help</li>
<%} if(materialsFlag.equals("true") || materialsFlag.equals("1")) {%>
<li class="k-state-active">Materials</li>
<%}else{%>
<script type="text/javascript">$(document).ready(function(){$("#tabstrip").kendoTabStrip().data("kendoTabStrip").select(0);});</script>
<%} if(jobsFlag.equals("true") || jobsFlag.equals("1")) {%>
<li>Jobs</li>
<%} if(eProfileFlag.equals("true") || eProfileFlag.equals("1")) {%>
<li>eProfile</li>
<%}%>
</ul>
<%} if(helpFlag.equals("true") || helpFlag.equals("1")) {%>
<div>
<span class=""> </span>
<table style="width: 100%;">
<tr>
<td style="">
<div class="panelbar">
<li class="k-state-active" style="font-weight: bold;">Help
<div class="tabBody">
<iframe src="${pageContext.servletContext.contextPath}/help.do"
width="850px" height="650px"></iframe>
</div>
</li>
</div>
</td>
</tr>
</table>
</div>
<%} if(materialsFlag.equals("true") || materialsFlag.equals("1")) {%>
<div>
<span class=""> </span>
<table style="width: 100%;">
<tr>
<td style="">
<div class="panelbar">
<li class="k-state-active" style="font-weight: bold;">Materials
<div class="panelBody">
<img id="matloader" src="../loading.gif" width="36" height="36" alt="loading gif"/>
<iframe id="matFrame" style="display:none;" src="${pageContext.servletContext.contextPath}/materials.do"
width="100%" height="500px"></iframe>
</div>
<script>
$(document).ready(function () {
$('#matFrame').on('load', function () {
$('#matFrame').show();
$('#matloader').hide();
});
});
</script>
</li>
</div>
</td>
<td style="">
<div class="panelbar">
<li class="k-state-active" style="font-weight: bold;">PURCHASING
<div class="panelBody">
<img id="purchasingloader" src="../loading.gif" width="36" height="36" alt="loading gif"/>
<iframe id="purchasingFrame" style="display:none;" src="${pageContext.servletContext.contextPath}/purch.do"
width="100%" height="500px"></iframe>
</div>
<script>
$(document).ready(function () {
$('#purchasingFrame').on('load', function () {
$('#purchasingFrame').show();
$('#purchasingloader').hide();
});
});
</script>
</li>
</div>
</td>
</tr>
</table>
</div>
<%} if(jobsFlag.equals("true") || jobsFlag.equals("1")) {%>
<div>
<span class=""> </span>
<div class="jobs">
<div class="panelbar">
<li class="k-state-active" style="font-weight: bold;">Jobs
<div class="panelBody">
<img id="loader1" src="../loading.gif" width="36" height="36" alt="loading gif"/>
<iframe id="jobsFrame" style="display:none;" src="${pageContext.servletContext.contextPath}/jobs.do"
width="100%" height="500px"></iframe>
</div>
<script>
$(document).ready(function () {
$('#jobsFrame').on('load', function () {
$('#jobsFrame').show();
$('#loader1').hide();
});
});
</script>
</div>
</div>
</div>
<%} if(eProfileFlag.equals("true") || eProfileFlag.equals("1")) {%>
<div>
<span class=""> </span>
<div class="eProfile">
<div class="panelbar">
<li class="k-state-active" style="font-weight: bold;">eProfile <div class="panelBody">
<img id="eProLoader" src="../loading.gif" width="36" height="36" alt="loading gif"/>
<iframe id="eProFrame" style="display:none;" src="${pageContext.servletContext.contextPath}/eProfile.do"
width="100%" height="500px"></iframe>
</div>
<script>
$(document).ready(function () {
$('#eProFrame').on('load', function () {
$('#eProFrame').show();
$('#eProLoader').hide();
});
});
</script>
</li>
</div>
</div>
</div>
<%} %>
</div>
</div>
选项卡是可配置的,我正在读取属性文件以查看需要显示哪些选项卡。因此,jsp 的开始部分检查需要显示哪些选项卡,因此我正在制作一个列表。其余部分没有太多条件,除非需要显示选项卡。现在,正在发生的事情是所有选项卡都在加载 iFrame 内容,这使得微调器显示了相当长的一段时间,并且页面需要更多时间才能完全加载。我正在尝试有选择地加载内容,即应首先加载默认选项卡,其余选项卡仅在单击时才加载。我查看了 kendo-ui API,但没有找到任何相关的解决方案。
我正在寻找一种可以使用 javascript 在 JSP 中实现的解决方案,或者如果需要我也可以调用控制器。