2010-06-03 53 views
1

我對包含一個表格(gridview)的asp.net 2.0網頁有着雄心勃勃的要求,網格中的每一行都包含6個用於數據輸入的select(下拉)控件。將顯示的行數取決於用戶的搜索參數,這些參數在頁面的另一個區域中指定。不幸的是,通過指定默認(甚至基本)搜索參數,網格可能包含幾百行。我注意到,在這種情況下,IE8的瀏覽器開始表現得相當不正常,一旦我到達大量的行 - 沒有記錄證據顯示這開始成爲問題的行數。例如,試圖查看頁面的源代碼會導致來自IE的消息,指出頁面出現問題,迫使瀏覽器重新加載它,並且我從來沒有獲得源代碼。很明顯,頁面加載和渲染也相當緩慢。可以在HTML表單上使用的輸入控件的最大數量是多少?

我知道我的解決方案可能會涉及到分頁gridview,使得它只顯示每頁20個左右的行,而且我將不得不編寫代碼來處理保存下拉值時的變化,當用戶更改頁面。我也可以關閉gridview上的viewstate。然而,我真正想要提出的問題是 - 有沒有人看到一個文檔化的規則,指出HTML瀏覽器窗體應該能夠包含的輸入控件的最大數量?搜索後,我在互聯網上找不到任何東西,我懷疑答案可能是瀏覽器根據運行的機器配置可以處理的任何內容。您使用的任何經驗法則?

感謝您的任何建議。

Rich

+2

唯一記錄的規則是常識 - 不要將更多的控件放在頁面上,然後將控件放在桌面應用程序的表單上。 – zildjohn01 2010-06-03 20:32:27

回答

1

有更好的設計嗎?什麼是使用場景?例如,提出了一個這樣的要求(我不太喜歡稱之爲「Web上的Excel」),是否可以呈現大部分只讀數據集,然後使用jQuery來更改單行來點擊時編輯控件?也許甚至,使用一些服務器端分頁,模擬「無限滾動」,而一次只能加載20行?您可以通過這種方式減少顯示的(和DOM存儲的)數據,並減少瀏覽器中編輯控件的數量,並且還可以提供大部分(如果不是全部)所需功能。

一般來說,一次可見的大量輸入控件是可用性的噩夢,並且在視覺上非常分散注意力,難以排列/處理。毫無疑問,用上面描述的解決方案,您幾乎可以獲得更好的體驗。是的,這將會是一大堆客戶端腳本,但在瀏覽器,用戶以及最終你會更容易。

+0

這真是個好主意! – markthewizard1234 2017-07-12 14:37:31

1

這幾乎要歸結於客戶機的內存。據我所知,控件的數量沒有實際限制。在一天結束時,瀏覽器引擎呈現任何代碼規定的內容。有沒有如果有聲明稱:

if (this.InputControls.Count > N) then GoBang(); 

的反常行爲,你可能有大量的控制體驗可能是控制渲染本身造成你的機器的CPU和內存上一炮打響。如果您部署項目並在幾臺不同規格的機器上運行網站,您可能會看到不同。

但是,你真的需要如此大量的控制嗎?你說你認爲你應該使用分頁的事實表明你知道你做錯了。正確地執行並實施分頁,否則您將遇到問題,以便稍後解決並與客戶同呼吸;)。

相關問題