ASP.NET AJAX Advance Tips & Tricks (1)

來源:互聯網
上載者:User

CascadingDropDown在IE和Safari中的一個缺陷和解決方案

前言:

ASP.NET AJAX Toolkit中的CascadingDropDown簡單易用,但在IE和Safari中有一個比較明顯的效能缺 陷,當資料量大,並且使用者使用滑鼠滾輪或鍵盤上下鍵選取選項時,這個缺陷非常明顯。本文介紹通過修 改Toolkit原始碼來解決這個問題。(這個問題應該會比較爭議,也許很多人並不將其視為缺陷,視情況 而定吧)

問題重現:

大家可以到ASP.NET AJAX Toolkit官方展示頁面看看: http://www.asp.net/AJAX/AjaxControlToolkit/Samples/CascadingDropDown/CascadingDropDown.aspx< /P>

如下圖所示,當滑鼠焦點在父級列表框上時,如果你用的是IE或Safari,請嘗試著用滑鼠滾輪,或鍵 盤上下鍵來更換選項,這時就會發現每次父列表框選項的更改都使子列表框中的選項更新。這意味著,每 次更改都發送了一個WebService請求,去擷取子列表框中的清單項目集合!

然而在Firefox下,我們會發現,當我們嘗試用滑鼠滾輪,或鍵盤上下鍵來更換選項時,子列表框中的 選項並沒有更新,直至父列表框失去焦點。

可以想象一下,如果子列表選項集合比較龐大,CascadingDropDown在IE或Safari下的表現將會是一個 非常大的效能損耗。

原因:

我認為這個現象是由於<select>的onchange事件在IE或Safari和Firefox下的不同執行方式而引 起的。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.