2013-07-11 51 views
0

在我使用jquery和knockoutjs的一個MVC3項目中,我使用了knockoutjs來綁定列表框。如何顯示繁忙指標,當點擊一個列表框中有超過6000個項目的項目時

當列表框有幾個項目時,點擊一個項目會立即選擇該項目,但是當列表框中有很多項目(6000+)時,需要10-15秒來選擇項目。

用戶不知道這10-15秒內發生了什麼,所以我們認爲要實現一個繁忙的指示器。

這可能嗎?有沒有這個事件?有沒有更好的辦法?

+0

您曾經試圖分析代碼確切地知道什麼是採取這麼多的時間?您可以確定瓶頸的位置並修復它們,或者您可以知道如何顯示繁忙的指標。沒有更多的信息,很難告訴你如何去做。 – mael

+0

爲什麼問一個問題,如果你不能檢查答案麻煩? –

回答

0

如果select元素使用的是options綁定,則可能是因爲每次單擊時都會更新綁定。您可以嘗試升級到剛剛發佈的版本2.3.0或3.0.0測試版。我很確定這會解決問題。

0

您可以使用未來建設這個
視圖模型

var viewModel = new function() 
{ 
    var self = this; 
    self.items = ko.observableArray(); // your items 
    self.waitingResponse = ok.observable(false); // true - when you are waiting for response 
    self.sendRequest = function() 
    { 
     self.waitingResponse(true); // this will hide table with items 
            // and disaplay "Waiting for response..." 
     $.ajax(
     { 
      // 
      complete: function() 
      { 
      self.waitingResponse(false); // this will display table with items 
              // and hide "Waiting for response..." 
      } 
     }) 
    } 
} 

查看

<div data-bind="visible : waitingResponse()"> 
    <span>Waiting for response...</span> 
</div> 
<div data-bind="visible : !waitingResponse()"> 
    <table> 
     <!-- table with items --> 
    </table> 
</div> 
相關問題