title: How to keep this table from re-rendering rows
body: <p>I have a table that gets rendered by Knockout</p>
  
  <pre><code>&lt;table data-bind="visible: program"&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;td&gt;Post&lt;/td&gt;
              &lt;td&gt;Name&lt;/td&gt;
              &lt;td&gt;Odds&lt;/td&gt;
              &lt;!--ko foreach: options --&gt;
              &lt;td data-bind="visible: value, text: name"&gt;&lt;/td&gt;
              &lt;!-- /ko --&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody data-bind="foreach: program() ? program().item: []"&gt;
          &lt;tr&gt;
              &lt;td&gt;
                  &lt;span data-bind="text: place"&gt;&lt;/span&gt;
              &lt;/td&gt;
              &lt;td&gt;&lt;span data-bind="text: name"&gt;&lt;/span&gt;&lt;/td&gt;
              &lt;td&gt;&lt;span data-bind="text: odd"&gt;&lt;/span&gt;&lt;/td&gt;
  
              &lt;!--ko foreach: $parent.options --&gt;
              &lt;td data-bind="visible: value"&gt;
                  &lt;span data-bind="text: $parent[prop]"&gt;&lt;/span&gt;&lt;/td&gt;
              &lt;!-- /ko --&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
  &lt;/table&gt;
  </code></pre>
  
  <p>This table is rendered according to an observable I have (program). 'program is updated via ajax calls and then assignment (program(ko.mapping.fromJS(prg))).</p>
  
  <p>program has a array of items, the item count varies in size, but each item always have the needed fields.</p>
  
  <p>I imagine there is a way I can set this up so that Knockout only renders for new things.</p>
  
  <p>For example if my current program has 6 items in it, that creates a table with 6 rows, if i get a different program that also has 6 items in it, then the table shouldnt actually re-render the table just use whats already there. If then i have a 7 item program it would only render the single row it needed. And if 5 items came in the one after that it would simply remove the 2 it isn't using</p>
  
  <p>Does this sound possible? or am I off base?  ** Also my example above has been reduced for ease, the table does also contain a few ko.computed functions.</p>