GWT - Chrome上的Celltable图像闪烁

时间:2013-07-11 01:00:13

标签: google-chrome gwt

我们有一个CellTable的自定义实现,其中有一个自定义列来呈现标签和图像。作为悬停在表行上的一部分,我们调用table.redrawRow(rowNum)来呈现一些上下文菜单。

但是,这样做会导致text和image列重新呈现图像(进行服务器调用以获取图像)。这会导致闪烁效果。这只发生在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标头设置为no-cache。

有什么想法?想法?

1 个答案:

答案 0 :(得分:1)

如果您要求浏览器不缓存图像,并要求它绘制图像,则会重新下载它。

因此要么更改图像的缓存策略,要么/或更新表的策略(在悬停期间使用redrawRow显示新的内容似乎不是最理想的;单元格应该更倾听单击事件和动态更新他们的DOM