[英]loading the page data using ajax , asp.net
我在網站中使用ajax從名為NewsFeed.ascx的UserControl中調用某些信息,該信息位於“ controls”文件夾中,我的方式是制作一個Web服務頁面(在名為WebMethods的文件夾中),其中包含一個函數我的案例叫GetRSSReader ,它返回一個字符串格式:
[WebMethod]
public string GetRSSReader()
{
Page page = new Page();
UserControl ctl =
(UserControl)page.LoadControl("~/Controls/NewsFeed.ascx");
page.Controls.Add(ctl);
StringWriter writer = new StringWriter();
HttpContext.Current.Server.Execute(page, writer, false);
return writer.ToString();
}
然后我使用Jquery調用此頁面(我發現它太重了),以將返回的數據作為JSON這樣獲得:
<div id="Content"></div>
<script type="text/javascript" defer="defer" src="../JAVA/Default.js"></script>
>
$(document).ready(Update);
function Requests()
{
$.ajax({
type: "POST",
url: "../WebMethods/Feed.asmx/GetRSSReader",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
$('#Content').html(msg.d);
}
});
}
Jquery.js和此頁面(default.js)位於文件夾Java中
我的問題是:還有什么比這更好的了嗎? 除此之外,當我有大量的數據時,它是行不通的,並且無法讀取網格視圖工具。 有什么建議么 !? 10倍
從另一方面來說,網絡服務還有其他選擇嗎? (快點)
雖然肯定有一些較低級別的方法可以完成您的工作,從而減少了一些開銷,但聽起來您的問題是“大量數據”,而不是WebService的開銷。
您是否要返回新聞提要的全部內容? 您是否只想返回已更改的內容? 一些邏輯似乎是答案。
另外,沒有真正的理由使用網絡服務來做到這一點。 只需將UserControl放在常規頁面(aspx)中,然后使用GET查詢調用它即可。 您也可以使用通用Web處理程序(ashx)代替開銷較低的WebService。 但是,聽起來這並不是真正的問題。 無論哪種方式,您都無需打擾JSON。 您正在獲取HTML,只需獲取它,然后直接使用它即可。
另外,與其返回完全呈現的HTML(不知道UserControl的功能,就很難知道如何對其進行優化),而是返回數據,然后使用jQuery或其他方式生成輸出。 如果您不想在jQuery中構建模板,則可以在服務器上呈現默認/空模板,並在客戶端上使用它來構建數據。
當然,這將是一些工作,但是如果數據量是瓶頸,那將會有所幫助。
通常,WCF比Web服務更新,更快和更好。
然而,在你的情況我很懷疑你需要或者那些..如果我理解您的需求,您可以使用UpdatePanel
這個..包裝與控制UpdatePanel
,並與客戶端腳本,而不是調用自己的AJAX請求觸發它。
UpdatePanel
在幕后使用其自己的AJAX機制,我想它已經盡可能地優化了。
您可以使用ASP.NET Callback API,它非常輕巧,也可以發送JSON。
無論如何,為什么您說自己的方式效率低下? 您是否正在通過此Web服務發送大量數據?
也許您需要分頁。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.