簡體   English   中英

擁有成千上萬行且性能良好的按需加載數據源是否合理?

[英]Is it reasonable to have a load on demand datasoruce with thousands of rows and good performance?

案件

我想要一個允許用戶搜索現有項目並在三列中提供匹配項的界面。 但是性能非常重要。 因此,假設數據源是我從中檢索姓名,電話號碼和電子郵件的人員列表。 我使用Telerik的RadComboBox及其內置的EnableLoadOnDemand(在按鍵,粘貼等操作時重新加載列表)。

從第一次測試開始,我已經看到性能下降出現在500個數據項標記附近。 對我來說,這根本不是不合理的,因為模式匹配不僅在所有三列中都完成,而且是包含類型的(即,它在字符串中的任何位置都匹配)。 順便說一下,將搜索模式切換為StartsWith時,我看不到任何明顯的性能提升。

RadComboBox

<telerik:RadComboBox runat="server" ID="RadComboBox1" 
                Height="290px" Width="700px" EmptyMessage="Enter your query" EnableVirtualScrolling="False"
                MarkFirstMatch="true" Filter="StartsWith" EnableLoadOnDemand="true"
                HighlightTemplatedItems="true" AutoPostBack="True" EnableTextSelection="true"
                DataSourceID="SqlDataSource1">

                <HeaderTemplate>
                    <ul>
                        <li class="col1">Name</li>
                        <li class="col2">Mobile</li>
                        <li class="col3">E-mail</li>

                    </ul>
                </HeaderTemplate>
                <ItemTemplate>
                    <ul>
                        <li class="col1">
                            <%# DataBinder.Eval(Container.DataItem, "ContactName")%></li>
                        <li class="col2">
                            <%# DataBinder.Eval(Container.DataItem, "Mobile")%></li>
                        <li class="col3">
                            <%# DataBinder.Eval(Container.DataItem, "Email")%></li>


                    </ul>
                </ItemTemplate>

            </telerik:RadComboBox>

我期望用3000條數據行來實現這一目標是否合理? 是的,有什么方法可以優化我的方法嗎?

您可以考慮創建自己的過濾器(例如,通過存儲首次單擊處理程序時獲得的數據集,因此以后需要較少的時間來檢索數據)並返回少量數據: http://demos.telerik。 com / aspnet-ajax / combobox / examples / populatingwithdata / autocompletesql / defaultcs.aspx 您還可以減少每個請求的項目。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM