2011-09-17 16 views
0

いくつかの基準に基づいて顧客をフィルタリングし、その詳細をブラウザに表示するレポートページがあります。 2011年1月1日に顧客の登録日が特定の日付の後になった場合は、別の色で日付を強調表示する必要があります。私は表示する約800のレコードがあるので、これを行うための最善の方法は何か疑問に思っています。ジャバスクリプト、私はチェックして、私は、スケジュール実行する場合、多くクライアント側のJavaScriptまたはサーバー側

  • の処理が遅くなり、各レコードの特定の日付と比較されるだろう - 私は、クライアント側で日付をチェックすると

    • スクリプトをサーバー側で実行し、表示された色を設定する誤ったレコードを示すフラグをデータベースに設定します。レコードの他のフィールドに対してスケーラブルな方法でこれを行うにはどうすればよいですか?偉大な答えを

    UPDATE

    感謝。だから私はレコードのすべてのフィールドを含めるためにこれをスケールしたい場合は、別々のテーブルに各フィールドのフラグを格納し、テーブルをチェックして、各レコードにどのフラグが設定されているかを確認し、 ??あなたは、サーバー側であなたの記録をマークするときにJSPとJSTLタグライブラリを使用している場合、ケース2では

  • +1

    サーバーはマークアップを生成する必要があります(テーブルの場合は、その場合は「​​」)。日付のステータスを示すクラス値を使用します。その後、CSSを使用して外観を制御することができます。あなたが記述した内容に基づいたJavaScriptは必要ありません。 – Pointy

    答えて

    0

    は、出力はそのように行うことができます。

    警告:テストされていない

    <%@ 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> 
    

    他のレコードに応じてエントリをマークする場合は、フラグを設定するスクリプトを変更してください。

    +0

    ありがとうChristopher ..私は、表示のためにpythonとテンプレートを使用しています。これも私が心に留めていたものですが、他のエントリーに拡大縮小する正しい方法は不明です。私は自分のロジックを含めるように質問を更新しました。見てください。おかげで – Angela

    +0

    一般的に、データが最新であると表示されるたびにフィルタリングを行うかどうかを決定する必要があります。そうする場合は、サーバーの負荷を軽減するためにクライアント上で行うほうが良いかもしれません。少なくともクライアントがスマートフォンでない場合は、動作する可能性のある800エントリがあります。 最新のデータがそれほど重要でない場合は、通常のインターバルでデータをフィルタリングできます(たとえば、夜間にスクリプトを呼び出すなど)。 _one_ハイライトタイプ(ハイライトカラーの1つ)または複数のハイライトタイプ(1つのハイライトカラー)だけが必要な場合は、まだ完全にはわかりません。複数のフラグが必要な場合にのみ、複数のフラグが必要です。 – Christopher

    +0

    ...これらのフラグを顧客テーブルに統合しないのはなぜですか?時代遅れのフィールドだけをハイライトしたいのであれば、確かに複数のフラグが必要です。 質問の更新に戻るにはフラグを別のテーブルに保存する場合は、顧客リストをクライアントに配信するときに、そのテーブルを顧客テーブルと結合する必要があります。クライアントでは、フラグに基づいてフィールドを強調表示できます(例:JSTLタグとJPSを使用するc:ifステートメントを使用)。 – Christopher

    関連する問題