在Atlas服务器端实现中推荐使用Web Service而不是Page Method
English Version: http://dflying.dflying.net/1/archive/107_prefer_web_services_to_page_methods_in_atlas_server_side_implementation.html
我們可以用兩種方式把一個服務(wù)器段方法暴露給客戶端Atlas調(diào)用:Web Service和Page Method。我推薦使用Web Service的方法。
所有人都應(yīng)該非常重視的一點(diǎn)是Web Service和Page Method的工作原理以及工作過程有很大的分別。對于Atlas調(diào)用Web Service來說,當(dāng)請求被發(fā)送時候,僅僅簡單傳給服務(wù)器方法的參數(shù)數(shù)據(jù)。而對于Atlas調(diào)用Page Method來說,傳輸?shù)臄?shù)據(jù)將會很多,將把表單中所有的域,包括ViewState,一起傳送到服務(wù)器。在服務(wù)器端,它的工作方式也和普通的PostBack很相似:在這個Page Method被調(diào)用前,所有的服務(wù)器控件將得到它自身的狀態(tài)。這也正是為什么Page Method中可以訪問頁面中控件狀態(tài)的原因。
因此我的建議是只要在確實(shí)需要使用Page Method的時候(比如說需要在Page Method中訪問頁面中的控件狀態(tài))才使用Page Method,否則盡可能多地使用Web Service,這樣可以使程序在性能上有所提高。使用Web Service的另一個好處是讓程序?qū)哟渭軜?gòu)明晰。
您可以在http://www.fiddlertool.com/fiddler/下載Fiddler,一個很好的HTTP watcher和debugger,用來監(jiān)視客戶端與服務(wù)器的實(shí)際HTTP通信內(nèi)容。
這里是一段Web Method,只是簡單的返回服務(wù)器的當(dāng)前時間。
[WebMethod]public?DateTime?GetCurrentDateTime()
{
????return?DateTime.Now;
}
讓我們分別以Web Service和Page Method運(yùn)行這一段Web Method,并用Fiddler觀察實(shí)際運(yùn)行時的HTTP通信內(nèi)容:
Web Service
Page Method
可以看到以Web Service方式運(yùn)行時Post回服務(wù)器的Content-Length為0,而以Page Method運(yùn)行時候為1718。
轉(zhuǎn)載于:https://www.cnblogs.com/dflying/archive/2006/04/03/365859.html
總結(jié)
以上是生活随笔為你收集整理的在Atlas服务器端实现中推荐使用Web Service而不是Page Method的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 父类作为方法的形参以及父类作为方法返回值
- 下一篇: 三层交换实验