2013-07-11 5 views
0

У нас есть пользовательская реализация CellTable, в которой есть специальный столбец для рендеринга метки и изображения. Как часть зависания в строке таблицы, мы вызываем table.redrawRow (rowNum) для отображения некоторого контекстного меню.GWT - изображение сотового стола мерцает на Chrome

Однако при этом столбец текста и изображения повторно отображает изображение (сделайте вызов сервера для извлечения изображения). Это вызывает мерцающий эффект. Это происходит только в 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.

Примечание. Заголовки My Cache-Control имеют значение no-cache.

Любые мысли? Идеи?

ответ

1

Если вы попросите браузер не кэшировать изображение, и вы попросите его нарисовать изображение, он будет его повторно загружать.

Так что либо измените стратегию кэширования изображения, либо/или стратегию обновления таблицы (используя redrawRow во время зависания, чтобы отобразить что-то новое кажется субоптимальным, ячейки должны скорее слушать события мыши и обновлять их DOM динамически)

+0

Привет, Томас, Есть ли пример, который вы можете указать мне, где ячейки обновляют их DOM динамически? – ankurvsoni

+0

'DatePickerCell' отображает всплывающее окно, а' AbstractCell # setValue' перерисовывает ячейку (и только ячейку); 'setValue' используется в' EditTextCell' для переключения между _value как text_ и текстовым полем для ввода. Наконец, «ImageLoadingCell» перерисовывает ячейку при загрузке или ошибке изображения, «CompositeCell» выполняет свою DOM, а «ButtonCellBase» обновляет классы CSS своего элемента. –

Смежные вопросы