簡體   English   中英

使用ajax,asp.net加載頁面數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM