2009-10-07 155 views
13

我正在構建一個動態部分加載的asp.net頁面,我想用jQuery來調用頁面方法或web服務來檢索內容的HTML。ASP.NET頁面方法vs網絡服務

頁面方法或web服務,性能明智,哪種方式更好?

如果我打電話給頁面方法,在服務器端,頁面是否經歷了完整的生命週期?

有沒有什麼好的資源可以幫助我更好地理解頁面方法?

回答

17

您可以調用PageMethods和Web服務,而無需控制ScriptManager(它會生成JavaScript代理對象,使您可以使用熟悉的語法來調用Web服務和頁面方法)。

文章using jQuery to directly call ASP.NET AJAX page methods

文章using jQuery to Consume ASP.NET JSON Web Services

這裏是一個MSDN article from 2007 on Web Services and Page Methods。縱觀它,它似乎仍然與他們如何工作/你需要做些什麼來讓他們今天工作有關。

性能方面:

你可能期望頁面的方法來提供 比Web服務更好的性能。 畢竟,要解析調用Web服務 ,ASP.NET運行時必須對 解析SOAP數據包。然而,這個, 並不完全如此。 ASP.NET AJAX 安裝了一個定製的HTTP處理程序 (請參閱圖3),該程序攔截所有的ASMX請求。後綴爲/ js 的請求處理方式不同, 直接使用JSON有效負載 和Web服務方法。因此, 不涉及任何SOAP,請求的主體只包含 JSON輸入參數流。 對於非AJAX請求,新的HTTP 處理程序只是將回調 委派給 理解SOAP的原始ASP.NET處理程序。

針對頁面的生命週期,第方法做經過服務器端頁面生命週期(也有client-side Page Lifecycle太)。

+0

嘿@Russ同樣的文章! – TheVillageIdiot 2009-10-07 12:57:45

+0

@ TheVillageIdiot--我沒有想到它會很快再次出現! – 2009-10-07 13:01:53

+0

@RussCam後續問題,是否PageMethods異步,或者他們可以做成異步?我碰到了一個PageMethods調用的牆(這需要大約4秒的返回),並阻止其他基於計時器的Page方法調用按預期方式運行。 – 2016-06-28 14:51:10