當我提供ASP.NET頁面時,是否可以並行呈現頁面上的各種控件?當我提供ASP.NET頁面時,是否可以並行呈現頁面上的各種控件?
我在頁面上有幾個Telerik控件(RadGrids),當我逐步瀏覽正在加載的頁面時,看起來好像控件是數據綁定和串行渲染。 也許這種行爲是因爲我迷上了調試器。
是否有加載頁面,並有選擇控件建立在不同的線程?這是甚至在概念上可行還是必須按順序進行?
當我提供ASP.NET頁面時,是否可以並行呈現頁面上的各種控件?當我提供ASP.NET頁面時,是否可以並行呈現頁面上的各種控件?
我在頁面上有幾個Telerik控件(RadGrids),當我逐步瀏覽正在加載的頁面時,看起來好像控件是數據綁定和串行渲染。 也許這種行爲是因爲我迷上了調試器。
是否有加載頁面,並有選擇控件建立在不同的線程?這是甚至在概念上可行還是必須按順序進行?
你有幾個選項。您可以使用ASP.NET異步頁面模型。我們的想法是,您可以異步加載每個控件的數據,然後將該數據綁定到檢索到的每個控件上。
這將是這個樣子:
protected void Page_Load(object sender, EventArgs e)
{
if (Page.IsAsync) {
dataSource.GetDataCompleted +=
new GetDataCompletedEventHandler(GetDataCompleted);
dataSource.GetDataAsync();
}
else {
_yourCtl.DataSource = dataSource.GetData();
_yourCtl.DataBind();
}
}
void GetDataCompleted(object sender, GetDataCompletedEventArgs e) {
_yourCtl.DataSource = e.Result;
_yourCtl.DataBind();
}
你會在頁面上的每個控件執行相同。最終結果是呈現頁面的時間將等於呈現最慢呈現控件的時間。
另一種方法是使用AJAX加載控件。我不熟悉Telerik RadGrid控件,但我會認爲它支持AJAX。下面是一個Telerik演示頁面的鏈接,演示如何執行Telerik網格的程序客戶端綁定:http://demos.telerik.com/aspnet-ajax/grid/examples/client/databinding/defaultcs.aspx。
看看這篇文章,我希望它讓你朝着正確的方向:
http://www.codeproject.com/Articles/38501/Multi-Threading-in-ASP-NET.aspx
偉大的問題! – womp 2010-08-10 19:56:46