title: Updating a computed observable only sometimes
body: <p>I have a computed observable that makes AJAX calls based on other data (in a computed observable). The resulting data is used to populate part of the UI. Sometimes that part of the UI is hidden and I'd like to avoid the AJAX calls when it's hidden. Right now I have the following, but it updates whenever <code>isVisible</code> becomes <code>true</code>:</p>
  
  <pre><code>this.loadData = ko.computed(function() {
      if (this.isVisible()) {
          this.isProcessing(true);
          var self = this;
          $.when.apply($, ko.utils.arrayMap(this.parent.data.filteredSelectedDatasetLinks(), function(datasetLink) {
              return $.ajax({
                  url: datasetLink.getDownloadUrl('.json'),
                  success: function(data) {
                      //... do stuff with the data
                  }
              });
          }))
          .done(function() {
              self.isProcessing(false);
          });
      }
  }, this);
  </code></pre>
  
  <p>So obviously I need to split this up somehow, but I haven't figured out how to do it. To reiterate, when <code>isVisible</code> is false, no updates should happen. When <code>isVisible</code> is true, updates happen whenever <code>filteredSelectedDatasetLinks</code> changes. When <code>isVisible</code> becomes true, updates happen if <code>filteredSelectedDatasetLinks</code> changed while it was false.</p>