国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

在ASP.NET Atlas中調用Web Service—應用Cache減小服務器開銷

2019-11-18 17:11:54
字體:
來源:轉載
供稿:網友

作者:Dflying Chen (http://dflying.VEVb.com/

對于一些復雜的,需要較長時間完成,并且對實時性要求不是很高的服務,選擇Cache往往是一個有效的提高效率的方法。.NET的Web Service實現充分考慮了對Cache的需求,您只需要簡單的設定即可啟用Cache。Atlas中對Web Service的調用也可以利用這一Cache機制,以減少服務器端不必要的開銷。

要啟用Web Service的Cache,您只需要在WebMethod的聲明中添加如下屬性:

[WebMethod(CacheDuration = 5)]

其中CacheDuration的值代表Cache的時間,單位為秒。

但這種Cache的方法是Web Service提供的,Atlas對此一無所知,每次調用還是被發送給服務器。所以對于網絡上延遲對用戶的影響,這種Cache沒有辦法改善。

讓我們通過一個示例程序進一步了解Web Service的Cache。

首先編寫一個Web Service,返回當前時間,并指定CacheDuration為5秒:

[WebService(Namespace = "[WebServiceBinding(ConformsTo = Wsiprofiles.BasicPRofile1_1)]
public class CachedWebService : System.Web.Services.WebService
{
    [WebMethod(CacheDuration = 5)]
    public DateTime GetGurrentTime()
    {
        return DateTime.Now;
    }
}


然后創建一個Atlas頁面,添加ScriptManager并在其中引用這個Web Service:

<atlas:ScriptManager runat="server" ID="scriptManager">
    <Services>
        <atlas:ServiceReference Path="CachedWebService.asmx" />
    </Services>
</atlas:ScriptManager>

再添加一些HTML標記用來調用這個Web Service并且顯示結果:

<input id="btnInvoke" type="button" value="Invoke" onclick="return btnInvoke_onclick()" />
<div id="result">
</div>

最后是javaScript部分,這里我們將每一次調用的結果都顯示到頁面上,便于分析:

function btnInvoke_onclick() {
    CachedWebService.GetGurrentTime(onCompleted);
}
function onCompleted(result) {
    $('result').innerHTML += result + "<br />";
}

 

下面在瀏覽器中測試一下,在多次點擊按鈕后,結果如下,可以看到Cache的作用:
 
同時,在Fiddler中可以看到,實際上這些請求還是被發送到了服務器,Cache只是服務器端的實現:


本示例的源代碼可以在此下載:http://www.survivalescaperooms.com/Files/dflying/CachedWebServiceDemo.zip


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 泰顺县| 陇南市| 酒泉市| 广平县| 延寿县| 五常市| 修水县| 夹江县| 原平市| 依兰县| 乐山市| 长沙县| 太康县| 沅江市| 三穗县| 阳东县| 科尔| 凭祥市| 嘉定区| 漾濞| 子长县| 栖霞市| 宕昌县| 牙克石市| 习水县| 山西省| 井冈山市| 宁明县| 虞城县| 龙山县| 仁寿县| 高青县| 镇宁| 峨眉山市| 旬阳县| 桐乡市| 海阳市| 固始县| 开封市| 山阴县| 蚌埠市|