0

ラベルと画像をレンダリングするためのカスタム列がある CellTable のカスタム実装があります。テーブルの行にカーソルを合わせる際に、 table.redrawRow(rowNum) を呼び出してコンテキスト メニューをレンダリングします。

ただし、それを行うと、テキストと画像の列で画像が再レンダリングされます (画像を取得するためにサーバー呼び出しを行います)。これにより、ちらつき効果が発生します。これは Chrome でのみ発生します (使用しているバージョン - Chrome27)

表の行は次のようになります。

<tr __gwt_row="0" __gwt_subrow="0" class="GAH0TQLMKD">
   <td class="GAH0TQLKKD GAH0TQLNKD GAH0TQLOKD">
      <div style="outline-style:none;" __gwt_cell="cell-gwt-uid-65" tabindex="0">
         <div style="border-collapse: separate; border-spacing:0">
            <div style="display:table-cell;vertical-align:middle">
              <img src="icon.png" alt="" style="vertical-align:middle; border: 0;width:16px;height:16px; ">
            </div>
            <div class="GAH0TQLMJD" style="display:table-cell"><a href="javascript:;"><b>Contiki</b></a></div>
         </div>
      </div>
   </td>
   <td class="GAH0TQLKKD GAH0TQLNKD">
      <div style="outline-style:none;" __gwt_cell="cell-gwt-uid-66">Travels</div>
   </td>
   <td class="GAH0TQLKKD GAH0TQLNKD">
      <div style="outline-style:none;" __gwt_cell="cell-gwt-uid-67">Blah</div>
   </td>
   <td class="GAH0TQLKKD GAH0TQLNKD">
      <div style="outline-style:none;" __gwt_cell="cell-gwt-uid-68">Blah</div>
   </td>
   <td class="GAH0TQLKKD GAH0TQLNKD">
      <div style="outline-style:none;" __gwt_cell="cell-gwt-uid-69">2013-07-10</div>
   </td>
   <td class="GAH0TQLKKD GAH0TQLNKD">
      <div style="outline-style:none;" __gwt_cell="cell-gwt-uid-70">5</div>
   </td>
   <td class="GAH0TQLKKD GAH0TQLNKD">
      <div style="outline-style:none;" __gwt_cell="cell-gwt-uid-71">07/10/2013 01:53 AM</div>
   </td>
   <td class="GAH0TQLKKD GAH0TQLNKD GAH0TQLILD GAH0TQLDAD" align="right">
      <div style="outline-style:none;" __gwt_cell="cell-gwt-uid-72">
         <div class="GAH0TQLFAD">
            <div style="width:64px; height:17px"></div>
         </div>
      </div>
   </td>
</tr>

Firefox や IE9 ではちらつきは見られません。

注: 私の Cache-Control ヘッダーはキャッシュなしに設定されています。

何かご意見は?アイデア?

4

1 に答える 1

1

ブラウザに画像をキャッシュしないように指示し、画像を描画するように指示すると、画像が再ダウンロードされます。

したがって、画像のキャッシュ戦略、および/またはテーブルを更新するための戦略を変更してください(redrawRowホバー中に a を使用して何か新しいものを表示するのは最適ではないようです。セルはマウスイベントをリッスンし、DOM を動的に更新する必要があります)。

于 2013-07-11T09:46:14.720 に答える