是否可以在 <div>
中实现实时滚动或延迟滚动?其中有 <forEach>
环形。我在 <div>
中有以下代码,我想延迟加载内容。
<div class="update" id="update">
<c:forEach var="p" items="#{statusBean.statusList}"
varStatus="loop">
<h:form>
<c:if test="${p.statusmsg!=null}">
<div class="status">
//content
</div>
</c:if>
</h:form>
</c:forEach>
</div>
最佳答案
JSTL 和 EL 都只能在页面的 View 构建期间使用(这由服务器完成)。 Ajax 请求不是 View 构建时间的一部分,因为它们在客户端浏览器中,因此 JSTL 和 EL 无法处理 ajax 请求。尽管如此,您仍可以按照此处所述将 ajax 与普通 servlet 结合使用:How to use Servlets and Ajax?
由于您在代码中使用了 JSF(基于像 #{statusBean.statusList}
和 <h:form>
这样的延迟计算表达式的使用)并且假设您使用 JSF 2+,OmniFaces 中有一个很好的示例陈列柜: <o:componentIdParam>
, Expandable list 示例显示您可以对 @RequestScoped
进行 ajax 调用托管 bean 并检索 JSON String
并使用它来更新客户端的值,例如 HTML dom。
基于 this answer 的实时滚动示例:
$(window).scroll(function(){
if ($(window).scrollTop() == $(document).height() - $(window).height()){
loadNewData();
}
});
function loadNewData(){
/* add code to fetch new content and add it to the DOM */
}
关于java - 加载 <c :forEach> lazily 的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15910848/