西西軟件園多重安全檢測下載網(wǎng)站、值得信賴的軟件下載站!
軟件
軟件
文章
搜索

首頁編程開發(fā)javascript|JQuery → JQuery調(diào)用Web service實現(xiàn)AJAX實現(xiàn)教程

JQuery調(diào)用Web service實現(xiàn)AJAX實現(xiàn)教程

相關(guān)軟件相關(guān)文章發(fā)表評論 來源:西西整理時間:2012/5/27 14:07:28字體大。A-A+

作者:佚名點擊:252次評論:0次標簽: JQuery

  • 類型:編程輔助大。109KB語言:中文 評分:5.0
  • 標簽:
立即下載

前幾天跟一個朋友在聊Web的AJAX時,很驚訝他的設(shè)計方法很原始,直接用的js直接調(diào)的.aspx,傳參來取得結(jié)果實現(xiàn)局部刷新,個人感覺這樣不好維護,也沒有靈活性.

怎樣能夠做到靈活?可維護性強?

做一個小實例出來,也加強一下印象.

jQuery+Web service來實現(xiàn):Web service作后臺服務(wù),用jQuery(js優(yōu)秀框架)調(diào)此web service取得結(jié)果,如下是原理圖:

現(xiàn)在開始演示一個實例,開發(fā)工具如下為:Visual studio S 2008+jQuery1.4.1

1.新建一項目:MyService

2.Web service后臺代碼如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;

namespace MyService
{
    /// <summary>
    /// Summary description for Service1
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
     [System.Web.Script.Services.ScriptService]//此處需要設(shè)定為ScriptService類型,js才能夠從web service取得值
    public class Service1 : System.Web.Services.WebService
    {

        [WebMethod]
        public string GetMessage(string name)
        {
            return "Hello,"+name;
        }

        [WebMethod]
        public List<string> GetMembers() {
            List<string> personList = new List<string>();
            personList.Add("AGAN");
            personList.Add("MS");
            personList.Add("ZURI");
            personList.Add("JILI");
            personList.Add("Who are you!");
            return personList;
        }

        [WebMethod]
        public string GetYourAge(string name) {
           int age = 0;
           switch(name.ToUpper()){
               case "AGAN":
                   age = 18;
                   break;
               case "MS":
                   age = 28;
                   break;
               case "ZURI":
                   age = 25;
                   break;
               case "JILI":
                   age = 23;
                   break;
               default:
                   age = 30;
                   break;
           }
           return age.ToString();
        }
    }
}

注意在web.config中配置好默認文檔Service1.asmx,否則IIS中測試會報錯403的錯誤.

<system.webServer>   
<defaultDocument>
            <files>
                <add value="Service1.asmx" />
            </files>
        </defaultDocument>
    </system.webServer>

3.在項目解決方案中添加一Web setup項目MyServiceSetup,如下圖:

右鍵點擊MyServiceSetup安裝包,有Install(安裝),unInstall(卸載)點擊即可發(fā)布到IIS中或中IIS移除.

 瀏覽已發(fā)布的這個Web service可以看到已公開的這方個方法,如圖所示:

現(xiàn)在我們來測試一下GetMambers()這個方法,如圖:

點"調(diào)用"后結(jié)果如下:

 這說明發(fā)布的這個Web service已沒有問題,現(xiàn)在我們用jQuery來調(diào)這個服務(wù)來實現(xiàn)AJAX局部刷新的效果。

現(xiàn)在下載jQuery插件jquery-1.4.1.js

下載網(wǎng)址:http://elephantinaurance.com/soft/35464.html

 4. 建一個測試的項目來測試web service:TestMyService:

用js調(diào)用web service,一個按鈕取得ArrayOfString中的列表數(shù)據(jù),點擊列表項調(diào)GetYourAge()方法取得某個人的相關(guān)信息(年齡),添加一html文件,把jquery-1.4.2.js把到j(luò)s,

代碼和jquery代碼如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="TestMyService._Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">


    <title>Untitled Page</title>


    <script src="js/jquery-1.4.1.js" type="text/javascript"></script><!--引入jquery-1.4.1.js插件,直接從項目文件夾中拖動到-->

   
    <script type="text/javascript">
  
    function GetDataList()
    { 
        $.ajax({
            type:"POST",
            contentType:"application/json",
            url:"http://localhost/MyServiceSetup/Service1.asmx/GetMembers",//GetMembers是web service的方法名
            data:"",//無參數(shù)類型
            datatype:'json',
            success:function(result){
            try{
                $('#listMembers').empty();
                     $(result.d).each(function() {//遍歷取得的結(jié)果
                            $("#listMembers").append("<option selected='selected' value='" + this + "'>" + this + "</option>");
                        });
                }catch(e){
                    alert(e);
                }
              },
             error: function(result, status){
                if(status=='error'){
                    alert(result);
                }
             }
        });
    }
   
       function GetAge(name)
        { 
        $.ajax({
            type:"POST",
            contentType:"application/json",
            url:"http://localhost/MyServiceSetup/Service1.asmx/GetYourAge",//GetYourAge是web service的方法名
            data:"{name:'"+name+"'}",//name是參數(shù)名,跟web service的方法參數(shù)一致
            datatype:'json',
            success:function(result){
          
            try{
           
  
                $("#lblAge").html(name+","+result.d+" Year's old.");//result.d是取得的值
                }catch(e){
                    alert(e);
                }
              },
             error: function(result, status){
                if(status=='error'){
                    alert(result);
                }
             }
        });
    }
    </script> 
</head>
<body>
   
    <form id="form1" runat="server">
    <div>
    <input id="btnGet" type="button" value="Get" onclick="return GetDataList()" />
    Members:
        <select id="listMembers" multiple="multiple" onchange="return GetAge(this.value)">
            <option></option>
        </select>
        <asp:Label ID="lblAge" runat="server" Text="Your Age?"></asp:Label>
  
    </div>
    </form>
   
</body>
</html>

 在IIS中測試結(jié)果如下圖:

點擊Get取得人名列表,如下圖:

點擊列表項的某個人名,即取得人員的相關(guān)信息(年齡),如下圖所示:

現(xiàn)在一個簡單的jquery調(diào)web service實例已完成了.

源代碼如下:

測試源碼TestMyServiceSample.rar

    html編輯器
    (73)html編輯器
    我們做網(wǎng)頁的時候最難找的就是編輯器,網(wǎng)上找一個吧,要不是圖片上傳錯誤,就是到處都是錯誤,垃圾太多.大家都需要一個簡單,速度快的.西西為您提供最好用的編輯器一站式下載編輯器定義編輯器指的是一類編輯制作工具,可自定義窗囗,編輯主題索引,可選擇添搜索頁,無任何不自由。編輯器哪個好用小編個人比較喜歡使用和,這兩款編輯器軟件都有不錯的表現(xiàn)。至于編輯器哪個好用,這就要根據(jù)你的個人需求去選擇對應(yīng)的編輯器啦...更多>>
    • UltraEdit-32中文版21.20.1001 中文

      06-29 / 19.5M

      推薦理由:ultraEdit 32 破解版 簡體中文 內(nèi)有安裝說明,完全免費,無試用期的。該軟件功能強大,能打開各種格式的文件
    • pyscripter x642.5.3 官方最新版

      11-10 / 4.7M

      推薦理由:python編輯器,代碼補全、參數(shù)提示補全工具,這個工具其實非常重要,可以大大提高開發(fā)效率,減少出錯。很滿
    • 快手AAuto Studio10.152 綠色中文免

      02-20 / 8.5M

      推薦理由:快手aauto是由一鶴軟件耗時四年開發(fā)新一代編程語言。完美支持靜態(tài)類型、動態(tài)類型,完美支持com、dllapi、re
    • ultraedit64位破解版v22.20.0.49 綠

      03-31 / 37.9M

      推薦理由:UltraEdit是最強大的一款超值文本編輯器!ultraedit64位破解版,適用于Windows64位系統(tǒng)使用,此版為綠色破解
    • Dreamweaver cs6中文版官方原版

      11-19 / 279.7M

      推薦理由:AdobeDreamweaverCS6是AdobeCreativeSuite6系列中的HTML編輯器和網(wǎng)頁設(shè)計軟件,是最優(yōu)秀的可視化網(wǎng)頁設(shè)計工
    • Adobe Dreamweaver CS5官方簡體中文

      05-15 / 436.8M

      推薦理由:Adobe Dreamweaver CS5 軟件使設(shè)計人員和開發(fā)人員能充滿自信地構(gòu)建基于標準的網(wǎng)站。由于同新的 Adobe CS Li
    dreamweaver cs6
    (14)dreamweaver cs6
    新版本使用了自適應(yīng)網(wǎng)格版面創(chuàng)建頁面,在發(fā)布前使用多屏幕預(yù)覽審閱設(shè)計,可大大提高工作效率。改善的性能,更高效地傳輸大型文件。實時視圖和多屏幕預(yù)覽面板可呈現(xiàn)代碼,更能夠檢查自己的工作。曾經(jīng)風(fēng)靡一時的網(wǎng)頁三劍客成員之一是目前應(yīng)用最廣的網(wǎng)頁制作軟件,原本是由公司所開發(fā)的著名網(wǎng)站開發(fā)工具,隨被收購后,改名為。它是第一套針對專業(yè)網(wǎng)頁設(shè)計師特別發(fā)展的視覺化網(wǎng)頁開發(fā)工具,以及在之后推出的針對專業(yè)網(wǎng)頁圖像設(shè)計的,三者...更多>>
    • Dreamweaver cs6中文版官方原版

      11-19 / 279.7M

      推薦理由:AdobeDreamweaverCS6是AdobeCreativeSuite6系列中的HTML編輯器和網(wǎng)頁設(shè)計軟件,是最優(yōu)秀的可視化網(wǎng)頁設(shè)計工
    • Dreamweaver cc amtlib.dll補丁

      07-05 / 834KB

      推薦理由:Adobe Dreamweaver CC 13.0 build 6390多語言正式版的破解補丁,破解后程序不再提示剩余天數(shù)與激活注冊。關(guān)
    • Dreamweaver CS5 HTML 5 擴展包

      06-22 / 5.7M

      推薦理由:安裝了該擴展后再也不用擔心不記得難記的css3樣式代碼了! 剛裝 Dreamweaver CS5 的時候,發(fā)現(xiàn)新建文檔的時
    • Dreamweaver插件包西西整理

      01-08 / 2.7M

      推薦理由:西西小編整理的一些比較常用的Dreamweaver插件,希望能對大家有所幫助!persistent_layers 不管滾動條如何拉
    • Adobe Dreamweaver CS4中文精簡版

      04-11 / 84.5M

      推薦理由:使用業(yè)界領(lǐng)先的Web 創(chuàng)作工具之一構(gòu)建世界級的網(wǎng)站和應(yīng)用程序。Adobe® Dreamweaver® CS4 軟件是 W
    • Dreamweaver jQuery智能提示插件1.

      07-31 / 109KB

      推薦理由:1.2.0版本插件在1.0.0插件基礎(chǔ)上進一步修改,版權(quán)信息僅保留致謝信息,刪除作者為了代碼整體提示美觀度,故

    相關(guān)評論

    閱讀本文后您有什么感想? 已有人給出評價!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過難過
    • 5 囧
    • 3 圍觀圍觀
    • 2 無聊無聊

    熱門評論

    最新評論

    發(fā)表評論 查看所有評論(0)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字數(shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)