到目前爲止,我知道我們有LiteralControl
和PlaceHolder
,我們可以在運行時動態地將控件添加到ASP.NET頁面。是否有任何asp.net組件可以編寫而不是添加
將HTML代碼添加到LiteralControl
我們使用
LiteralControl.Text = "Some HTML/Text"
和PlaceHolder
我們使用
PlaceHolder.Controls.Add(new LiteralControl("Some HTML/Text"))
我在尋找我可以寫它像什麼我Response.Write(...)
做一個組成部分但我需要它在頁面中的指定位置寫入。我需要多次調用才能發送小塊html代碼來輸出以節省內存。
,表示該部件的使用將是這樣的:
在aspx頁面我會把:
<body>
...
<div>
<asp:componentName ID="SomeComp" runat="server" />
</div>
...
</body>
而且在後面的我的代碼,我將使用這個(試想一個大數目對於SetCount):
for (int i;i<SetCount;i++){
SomeComp.Write("Some Text/HTML Code");
}
While(Read.Read()){
SomeComp.Write("Some More Text/HTML Code");
}
FYI添加到字符串DOT.NET
非常緩慢,LiteralControl
是不是一個好的選擇。
創建的StringBuilder和使用
LiteralControl.Text = StringBuilder.ToString()
是不是一種選擇,因爲它在內存中保存的所有字符串,直到你給它分配的控制和處置它。
PlaceHolder.Controls.Add(new LiteralControl("Some HTML/Text"))
是不是一種選擇,因爲它創造了HTML的每個塊我給它添加一個LiteralControl和它再次使用大量的內存,對我來說是有限的。
我的Intranet網站每秒約有500次調用同一頁面,它會在內存使用中產生巨大的峯值,使IIS停止響應其他應用程序的請求。
也許在jQuery中使用'div'會有幫助嗎? – 2012-01-14 03:46:41
所以你想要LiteralControl的行爲,但更快?由於它的渲染調用只是output.Write(this._text),我不確定你將如何變得更快,並且仍然是一個(行爲良好的)控件。或許<%= foo %>會更適合你? – 2012-01-14 05:57:41
@JamesManning,謝謝你的想法,'LiteralControl'很快,但是它的輸入是字符串,並且向該輸出添加了字符串'+'。我相信你知道'DOT.NET'處理字符串的速度很慢。我正在看的案例是LiteralControl.Append('Some HTML/Text'),它直接寫入頁面中的指定區域。 – AaA 2012-01-15 04:08:01