程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#發現之旅-高性能ASP.NET樹狀列表控件(上)(2)

C#發現之旅-高性能ASP.NET樹狀列表控件(上)(2)

編輯:關於C語言

解決問題

經過上述分析,我們可以了解到樹狀列表加載緩慢主要原因就是Javascript腳本生成Html字符串過程緩慢,很自然我們就針對這個原因來解決問題。

首先我們可以完全拋棄Javascript腳本,使用C#在服務器端生成 展現樹狀列表的HTML代碼,然後發往客戶端 ,客戶端浏覽器獲得Html代碼並展示出樹狀列表。

在這種模式下,服務器端的C#程序查詢數據庫獲得數據,並使用字符串拼湊來生成用於展現樹狀列表的HTML代碼,由於C#功能強大,而且速度比較快,可以使用 StringBuilder來加速字符串拼湊操作,而客戶端浏覽器獲得的這個Html代碼,立即解析並顯示出樹狀列表。因此整個過程是相當快的。這是一個可以采用的解決方法。

當然這個方式有一定的限制性,若服務器程序運行也比較緩慢,比如ASP,它比客戶端的Javascript腳本快不了很多,此時這種方法優勢就不明顯了。

另外一個方法就是加速Javascript腳本生成Html代碼的過程。這時我們可以考慮使用其他的可快速運行的程序來輔助Javascript來生成Html代碼,於是我們想到COM組件,我們可以設計出這樣的程序結構。

在這個軟件結構中,C#程序連接數據庫查詢數據,然後生成Javascript腳本字符串,而客戶端浏覽器獲得並執行Javascript腳本,在 Javascript腳本調用外部的COM組件,生成HTML字符串,然後使用document.write或innerHTML將Html字符串填充到頁面中顯示出樹狀結構。由於COM組件一般是用C++等編譯性語言開發的,因此運行速度比Javascript快得多,這樣能加速Javascript生成Html代碼的速度。

由於便於B/S系統的開發和部署,我們盡量避免自己開發的COM組件或使用第三方組件,而是使用Windows操作系統自帶的標准COM組件,浏覽器認為該組件比較安全,運行速度快,而且還能方便的生成Html字符串。這個組件是什麼呢?這就是MSXML組件。

MSXML組件是用C++開發的,是Windows操作系統的標准部分,而且是IE浏覽器認為比較安全的ActiveX組件,能和IE浏覽器進行密切的協作。

那麼我們又如何使用MSXML組件來生成HTML代碼呢?我們可以采用XSLT技術,首先系統提供一個XML文檔,該文檔定義了樹狀結構信息,然後我們調用一個事先定義好的XSLT文檔,將兩者進行XSLT轉化,一下子就能生成HTML字符串,然後將生成的HTML字符串填充到頁面中。在這個過程中,大部分運算量是由MSXML完成,而MSXML組件是用C++開發的,運行速度快,這樣就能大大加快整個生成Html字符串的過程,從而加快樹狀列表的加載過程。

由於XSLT是國際標准,因為我們在服務器端也可以使用這種方法。而且客戶端和服務器端的代碼類似,因此我們有可能開發出同時支持服務器端運行和客戶端運行的樹狀列表WEB控件。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved