基於jquery $.ajax實現用戶端與伺服器資料即時互動程式

來源:互聯網
上載者:User

簡單的html代碼,儲存了ajax.html就可以了。

 代碼如下 複製代碼

<a id="ViewInfo" href="javascript:void(0)" class="link" onclick="ViewMsg(<%#Eval("RecordID")%>);return false;">查看全部</a>
  <div id="ViewMsg" style="background-color:#fff; padding:10px;" class="inbox">
         <p>
             <b>
                 <label id="lblSender"></label>
             </b>
             <label style="margin-left: 10px;">
                 <label id="lblSendTime"></label>
             </label>
         </p>
         <p>
             <label id="lblContent"></label>
         </p>
         <p style="text-align:right;">
             <input type="button" class="button" value="關閉本頁" onclick="closeViewMsg();" />
             <input id="delMsg" type="button" class="button" value="刪除本訊息" />
         </p>
     </div>

引用 jquery.js 和 date.f-0.5.0.js(json 日期轉換)

 代碼如下 複製代碼

function ViewMsg(id) {
    $.ajax({
        type: "post",
        cache: false,
        url: "/user/accountmanage/mymessage/MsgHandler.ashx?id=" + id + "&type=view",
        datatype: "json",
        data:'',//可以在這裡寫需要http請求的參數。
        success: function (data) {
            $('#lblSender').html(data.Sender);
            $('#lblSendTime').html(new Date(parseInt(data.SendTime.substr(6))).f('yyyy-MM-dd'));//json 日期文字轉換成 string日期 格式
            $('#lblContent').html(data.Content1);
            var message = data.RecordID;
            $('#delMsg').bind('click', { msg: message }, function (event) {

                confirm("確定要刪除?");
                $.ajax({
                    type: "post",
                    cache: false,
                    url: "/user/accountmanage/mymessage/MsgHandler.ashx?id=" + event.data.msg + "&type=del",
                    datatype: "text",
                    success: function (data) { location.href = location; },
                    error: function (XMLHttpRequest, textStatus, errorThrown) {
                        alert('');
                    }
                });
            });
        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
            alert('');
        }
    });
}

建立一個一般處理常式 MsgHandler.ashx  注意文檔編碼和jquery ajax檔案編碼必須一致,否則可能出現亂碼問題。

 代碼如下 複製代碼

public class MsgHandler : IHttpHandler
    {

        public void ProcessRequest(HttpContext context)
        {
            if (context.Request.QueryString["type"] == "view")
            {
                context.Response.ContentType = "application/json";
                int id = JSSDW.Utils.StringUtils.ToInt32(context.Request.QueryString["id"], 0);//這個是把string類型轉換為int類型,預設為0,可以直接用convert.into32()
                WebBiz.Message messageBiz = new WebBiz.Message();
                Interface.Message message = messageBiz.GetMessageInfo(id);
                string json = new JavaScriptSerializer().Serialize(message);//把實體類轉為json格式輸出
                context.Response.Write(json);
            }
            else
            {
                context.Response.ContentType = "application/text";
                int id = JSSDW.Utils.StringUtils.ToInt32(context.Request.QueryString["id"], 0);
                WebBiz.Message messageBiz = new WebBiz.Message();
                messageBiz.DeleteMessageInfo(id);
                context.Response.Write("刪除成功");
            }
        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }

下面這段代碼是主要的了,就是發送類型為post資料了,然後返回 類型為json上面有個json檔案,還有一個url就是請求處理資料的url

 代碼如下 複製代碼

$.ajax({

type:'post',//這裡頁面資料發送請求的方式可以為post和get

cache:'false ', //這裡可以為false或者true 是否要緩衝 ,預設為false

url  : 'XXXXX/XXX.ashx',//這裡頁面通過webhttprequest 請求處理的類路徑最好寫實體路徑

datatype:'json',//這裡傳出的資料格式可以為json類型和text類型

data: flag:'del',id:'ID',$('#id').val()//這裡可以寫入你要傳過去處理的資料和類型等等

success:function(data){},//這裡返回經過處理的得到的服務端資料

error: function (XMLHttpRequest, textStatus, errorThrown) {
                        alert('');
});


總結:
本文章簡單的講述了關於利用了$.ajax的post方法來發送請求返回json資料然後我們進來處理,由於使用了外掛程式我們節省了大量的關於ajax相容這塊的處理,至於asp.net這段代碼我們不講解了。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.