2013-04-16 30 views
0

我必須將數據加載到一些dropdownlists其中包括將數據加載到存儲通過Oracle數據表procedures.But這使我的頁面加載每次回發後慢。我應該使用哪種技術來加快頁面加載速度。加載數據最快

爲了更好的理解,我會在這裏引用

  1. 實例,我們可以用Oracle連接和存儲過程加載數據表。
  2. 我們將把這個數據表內容加載到下拉列表中
  3. 在選擇這一個下拉列表時,將使用上述過程填充一個下拉列表。

現在我的問題是如何通過使用某些調整技術或實現一些新的功能來加快我的頁面加載速度。我的問題是特定於asp.net 2.0框架。

在此先感謝。

+5

如何做到這一點比現在更快取決於你現在是怎麼做的相當多。目前什麼是緩慢的部分? –

回答

0

沒有看到您的代碼,並考慮到您對回發加載時間的擔憂(「......每次回發後緩慢」),我可以建議您也許可以利用ASP.NET ViewState功能來填充下拉列表在初始頁面加載期間只有一次,並讓ASP.NET在隨後的回發期間恢復其狀態(項目以及選定的值)。像下面的僞代碼可以做的伎倆:

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!Page.IsPostBack) 
    { 
    LoadData(); 
    } 
} 

private void LoadData() 
{ 
    // this.List1 refers to the DropDownList control defined in your page markup 
    DropDownList list = this.List1; 

    IList<Tuple<string, string>> items = /* Getting items from the database */; 
    int selectedItemIndex = /* Getting the selected item index */; 

    for (int i = 0; i < items.Count; i++) 
    { 
    list.Items.Add(new ListItem(items[i].Item1, items[i].Item2, i == selectedItemIndex)); 
    } 
} 

希望這會有所幫助。

P.S.當你問這樣的問題時,請確保你發佈了相關的代碼片段,否則很難提出建議,因爲問題可能不是它看起來像什麼:-)

0

我會建議你緩存與您的下拉列表中填入的數據。有很多技術,這一切都取決於你加載到你的下拉的數據量。因爲我希望你有大量的列表(如表用戶 - ID,名稱,電話,出生日期,相關度1,相關度2,關係3 ...),但你需要從這張表只有2列 - Id , 名稱。所以:

1)我會建議你使用SelectListItem作爲DTO對象。 2)和應用程序啓動時加載的BD列表項到您的內存緩存所有的整個數據,但是這將正常工作,如果你有不超過〜10000對象(取決於服務器的內存量)。 3)具有快速工作緩存數據樂趣。

另一種方式是到該對象存儲的NoSql像名稱,收藏價值,它是用於存儲這類數據也將工作速度比使用SQL這種類型的數據製成。