技术开发 频道

ASP.NET AJAX:当我们不需要state


【IT168专稿】

当我们不需要状态(state)


    当我们不要求我们的应用程序来保持状态时,我们可以使用基本的HTML 和 JavaScript,为我们的服务器上面的代码提供异步呼叫。不使用状态这一方法的好处就是它非常轻巧——我们不再要求服务器完全回传。

    ASP.NET AJAX通过使用JavaScript,为在服务器上面调用代码提供了一个丰富的结构。我们有能力异步地调用ASP.NET Web Service或者WCF Service方法,ASP.NET Web Service 或者 WCF Service方法都被安装在了服务器上面——所有的都没有围着服务器转。

    在看任何代码之前,首先看一下怎样在Web Service上访问方法。在这篇文章前面(使用了状态的部分)已经知道ScriptManager控件有多重要,因为它能定义一个ScriptManager控件的Services子元素,以及给服务器上的服务增添一个引用,所以它变得更好。在代码1中,我们为People Web Service补充了一个引用,此People Web Service是一个ASP.NET Web Service.

代码1: 参考一个Web Service

<asp:ScriptManager 
ID="sm"
runat="server">
<Services>
<asp:ServiceReference
Path="~/WebServices/PeopleWebService.asmx" />
</Services>
</asp:ScriptManager>
    当运行这个代码时将看到引用了URL,此URL和Web Service有同样的地址,然而,它上面附加有一个标记。JavaScript文件是一个自动生成的代理,为了从客户上的JavaScript代码中调用Web Services方法。我们不能在Web Services中使用这个功能,我们必须明确地定义:通过使用ScriptService属性(在System.Web.Scripts.Services命名空间里可以找到,)我们的Web Service可以被客户JavaScript调用,代码2显示了这些。

代码2: 允许一个Web Services的方法被client JavaScript调用
[ScriptService] 
public class PeopleWebService : System.Web.Services.WebService {
// ....
}


0
相关文章