2009-12-02 45 views

回答

3

我覺得MSDN ScriptManager control page做總結特點的一個很好的工作 -

  • 註冊腳本,與部分頁更新兼容。

  • 爲了管理依賴你的腳本和核心 庫,您註冊 是在Microsoft AJAX庫 腳本之後加載的任何腳本之間 。

  • 指定是否向瀏覽器發送釋放或調試腳本。

  • 通過使用ScriptManager 控件註冊Web 服務,從腳本提供對Web服務方法的訪問。

  • 提供訪問ASP.NET驗證,角色,並通過與ScriptManager控件註冊這些服務 配置文件從客戶端腳本 應用 服務。

  • 啓用ECMAScript(JavaScript)的文化特定顯示日期, 瀏覽器中的數字和字符串函數。

  • 訪問本地化資源嵌入的腳本文件或通過使用 的ScriptReference控制的 ResourceUICultures財產 獨立腳本文件。

  • 實現了IExtenderControl或與 ScriptManager控件,以便由客戶端組件和 行爲要求腳本 呈現 IScriptControl接口註冊服務器控件。

本質上的ScriptManager做什麼它說,沒有與編寫JavaScript的「膠水」自己做你的一部分太多關注管理腳本。

當然,包含ScriptManager控件的開銷(有些可能是重要的),至少是爲腳本資源提供的額外請求量以及生成的代理類調用Web服務和頁面方法的大小。當開發一個內聯網應用程序時,與開發互聯網應用程序相比,帶寬和網絡速度可能不太成問題,但這一點可能並不那麼重要,但重要的是要注意。

如果您對能夠替換ScriptManager所有功能的JavaScript庫感到滿意,同時重量更輕,並且可以快速完成任務,那麼這聽起來像是不使用ScriptManager的好例子。

就處理JSON而言,jQuery和ScriptManager都可以很好地處理它。 IIRC,JSON是.NET中頁面方法和Web服務的默認數據類型(儘管有些事情提醒我並非總是如此)。

2

WRT Ajax調用?很少。 非常少。有幾個可能利益ASP.NET AJAX框架jQuery的上方:

  1. 語法。該框架允許你讓你的web服務調用看起來像你真的是調用一些地方的方法,並把它的參數:

    MyNamespace.MyWebservice.MyMethod('arg1value', 'arg2value', onResult); 
    

    注意如何構架版本知道參數的Web服務方法的順序。

    jQuery的.ajax需要設置管道以調用ASP.NET AJAX Web服務方法。這是關於fairly最小和博客。 well

    $.ajax({ 
        type: "GET", 
        url: "MyWebservice.asmx/MyMethod", 
        data: '{"arg1":"arg1value","arg2":"arg2value"}', 
        contentType: "application/json; charset=utf-8", 
        dataType: "json", 
        success: function(data) { 
        onResult(data.d) // ASP.NET returns payload in `".d"` property 
        } 
    }); 
    
  2. JSON序列化傳遞參數傳遞給Web服務:ASP.NET AJAX框架具有Sys.Serialization.JavaScriptSerializer.serialize這確實序列化的Web服務參數「幕後」的工作。只有jQuery可能需要包含第三個庫,例如json.org的JSON.stringify 。這是如此可以忽略不計。

  3. 硬編碼GET和POST請求類型。由於框架爲您生成了一個來自WebService類定義的JavaScript客戶端代理,因此您通常不知道(或關心)客戶端中的HTTP請求方法。您只需將其設置在Web Service類的ScriptMethod屬性中,然後從客戶端調用它。使用jQuery,您必須知道它,才能將它作爲type選項傳遞給.ajax

至於好處WRT非Ajax的東西,@Russ凸輪總結起來已經爲雅。


內置到FF 3.1IE8已經

+0

我沒有比較所有ASP.NET AJAX框架jQuery的,但你的答案是有幫助的,感謝 – 2009-12-02 23:35:01

+0

@Amr:我做不把整個框架與jQuery進行比較。只是AJAX的一部分。 – 2009-12-03 02:16:41

+0

@新月新鮮:是的,我非常感謝你。 – 2009-12-03 09:32:23

相關問題