【问题标题】:client side javascript or server side客户端javascript或服务器端
【发布时间】:2011-09-17 12:39:58
【问题描述】:

我有一个报告页面,它根据某些条件过滤客户并在浏览器上显示他们的详细信息。如果客户的注册日期在某个日期(例如 2011 年 1 月 1 日)之后,我需要用不同的颜色突出显示该日期。我想知道最好的方法是什么,因为要显示大约 800 条记录。

  • 如果我在客户端检查日期 - javascript,我会检查并将其与每条记录的特定日期进行比较,这会大大减慢处理速度

  • 1234563记录??

更新

感谢您的精彩回答。因此,如果我想扩展它以包含记录的所有字段,是否可以将每个字段的标志存储在单独的表中,然后检查表以查看为每条记录设置了哪些标志并相应地更改显示??

【问题讨论】:

  • 服务器应该生成标记(它是一个表吗?如果是,那么日期的<td>)带有一个指示日期状态的类值。然后你可以使用 CSS 来控制外观。根据您的描述,不需要 JavaScript。

标签: javascript client-side server-side


【解决方案1】:

在情况 2 中,当您在服务器端标记记录时,如果您使用 JSP 和 JSTL-Tag 库,则可以像这样进行输出:

警告:未测试

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<c:forEach items="${customerList}" var="customer" varStatus="status">
    <c:if test="${status.first}">
        List of Customers:<br>
        <ul>
    </c:if>
            <li <c:if test="${customer.flag}">class="marked"</c:if>>
               <c:out value="${customer.name}"/>
            </li>
    <c:if test="${status.last}">
       </ul>
    </c:if>
</c:forEach>

如果您想根据其他记录标记条目,那么您必须调整设置标志的脚本。

【讨论】:

  • 感谢 Christopher..我正在使用 python 和模板进行显示。这也是我的想法,但是我不确定将其扩展到其他条目的正确方法。我已经更新了问题以包含我的逻辑。请看一下。谢谢
  • 通常您必须决定是否要在每次显示最新数据时进行过滤。如果这样做,最好在客户端上执行以减少服务器负载。至少当客户不是智能手机时,有 800 个条目可能有效。如果最新数据不是那么重要,那么您可以定期过滤数据(例如,通过每晚调用脚本)。但我还不完全清楚,如果您只想要 一种 突出显示类型(一种突出显示颜色)或不止一种。因为只有当你想要不止一个时,你才需要不止一个标志。
  • ... 为什么不将这些标志集成到您的客户表中?如果您只想突出显示已过时的字段,您当然需要多个标志。回到您的问题的更新:如果您将标志存储在单独的表中,那么在将客户列表传递给客户时,您应该将该表与客户表连接起来。在客户端上,您可以根据标志突出显示字段(例如,使用 JSTL 标记和 JPS 的 c:if 语句)。
  • 我想将标志存储在不同的表中以实现更简洁的设计,以便客户表只存储客户详细信息,然后进行连接以检索结果。我们可能需要检查其他字段是否有错误数据并以不同颜色显示。因此,我正在考虑每个字段做一个标志。
  • 到目前为止,我已经在服务器端实施了检查,并有一个用于检查注册日期的标志。如果需求发生变化,我将调整表格以包含更多标志。
猜你喜欢
  • 1970-01-01
  • 2023-03-14
  • 1970-01-01
  • 2011-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-14
相关资源
最近更新 更多