簡體   English   中英

如何通過許多數據庫請求來加快大型網頁的速度?

[英]How can I speed up large web page with many DB requests?

平台:Asp.Net(網站),C#,SQL Server 2012,Ajax。

我正在開發一個Asp.Net Web應用程序,它將被許多用戶使用(可能大約有5000個或更多)。 當我有一個網頁顯示大約200到500個網格行時,每行包含大約20到25個控件,例如TextBox,Dropdown,Link Button和一些HTML鏈接,以使用JavaScript顯示/隱藏信息。

基本上,這是一個數據輸入頁面,用戶可以在其中編輯/添加記錄並最終保存它們。

我在每次頁面加載時都重新加載HTML(因為我已將此文字控件的“查看狀態”設置為false)。 在服務器端執行通常需要5到8秒,但通常需要12到18秒才能加載整個內容,但是有時大約需要40秒到1分鍾以上(我想這可能是並發問題,但不確定那么多時間(某些用戶需要加載大約15秒)。

我要如何加載此HTML?

首先,我從數據庫中獲取組合項目的列表,然后將其分解為層次結構視圖,然后遍歷每個項目並創建HTML字符串。 在每個項目中,有許多子項目,例如在DDL中顯示要獲取的工作人員列表,還獲取每個工作人員的距離等(同樣,我在每個子處理中都點擊了DB)。

其中一些操作包括非常大的DB表(具有50,000多行),我已經調整了此類存儲過程,以避免使用like / Replace / etc運算符。

請指導我在這種情況下應采取什么方法? 我可以使用線程在Web應用程序中執行多項操作以減少處理時間嗎?

謝謝

這似乎是一個包含許多功能的大頁面。 您如何管理您的編輯? 您是允許用戶對多行進行多次更改然后提交還是在每次行編輯后提交給服務器?

我認為您可以使用JavaScript ,還可以利用本地數據等現代HTML5功能來允許您的用戶編輯和查看頁面上本地緩存的數據,然后使用JavaScript將更新后的數據推送回服務器。 通過使用Ajax,您可以有選擇地僅推送更新的數據,而不是通過回發推送整個頁面。 這樣,您的用戶可以獲得更好的體驗,並且可以最大程度地減少往返服務器的數據量。

我希望這可以為您指明正確的方向。

我建議將每頁的行數限制為20-30,因為您已經提到要顯示200至500的網格行。 還可以在單​​獨的頁面中創建要編輯的頁面,而不是在網格中進行內聯編輯,因為在網格中可以編輯20到25個控件,因為隨着行數的增加,頁面大小也會增加。

我認為,您尚未在此處找到問題的答案。 相反,有解決此問題的常用方法。

我覺得是這樣的:

  • -ajax
  • -分頁(按頁分隔數據結果)
  • 數據緩存
  • -為當前行(基本數據集)創建摘要視圖,並可能加載其他數據

這是我想到的第一件事。

暫無
暫無

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

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