zoukankan      html  css  js  c++  java
  • Jquery Ajax +.ashx XML数据格式

              Jquery Ajax+.ashx +XML比较流行的Ajax解决方案。在这里简单介绍一下

                  1.   .ashx文件

    public void ProcessRequest(HttpContext context)
            {
                IISHandler ajax = new IISHandler();
                context.Response.ContentType = "text/xml";
                //接受Ajax传的值必须用context.request["xxxxx"]方式
                string anthora = context.Request["author"];
                string msga = context.Request["msg"];
                List<IISHandler.Message> messageList = new List<IISHandler.Message>();
                if (!string.IsNullOrEmpty(anthora) && !string.IsNullOrEmpty(msga))
                {
                    //实例化对象,添加对象
                    IISHandler.Message message = new IISHandler.Message() { id = Guid.NewGuid().ToString(), user =  anthora, text = msga, time = DateTime.Now.ToString() };
                    messageList.Add(message);
                    //把对象保存
                    ajax.Save(messageList);
    
                }
                //返回最新十条记录
                context.Response.Write(ajax.GetMessages(10));
            }

               2.    保存

                 

     public void Save(List<Message> messageList)
            {
                XDocument xdo = null;
                //文件是否存在
                if (!File.Exists(Server.MapPath("data.xml")))
                {
                    //不存在新建
                    xdo = new XDocument(
                        new XElement("Message", "")
                        );
                    xdo.Save(AppDomain.CurrentDomain.BaseDirectory + "data.xml");
                }
                else
                {
                    //存在加载
                    xdo = XDocument.Load(Server.MapPath("data.xml"));
                }
                //循环添加到XMl中
                foreach (var message in messageList)
                {
                    XElement Message = new XElement("Node"
                        , new XElement("ID", message.id)
                        , new XElement("User", message.user)
                        , new XElement("Msg", message.text)
                        , new XElement("Date", message.time)
                        );
                    xdo.Element("Message").Add(Message);
                }
                //保存文件
                xdo.Save(Server.MapPath("data.xml"));
            }

                3. 返回记录方法

    public string SelectXML(int Top)
            {
                XDocument xdo = null;
                List<XElement> xelnew = new List<XElement>();
                //数据文件是否存在
                if (File.Exists(Server.MapPath("data.xml")))
                {
                    //加载数据文件
                    XElement xel = XElement.Load(Server.MapPath("data.xml"));
                    //Linq To XML 查询数据
                    xelnew = (from element
                                      in xel.Elements()
                                      orderby element.Element("Date").Value
                                      descending
                                      select element).Take(Top).ToList();
                    xdo = new XDocument(
                        new XElement("Message", ""));
                    foreach (var item in xelnew)
                    {
                        xdo.Element("Message").Add(item);
                    }
                    //保存查询文件
                    xdo.Save(AppDomain.CurrentDomain.BaseDirectory + "Selectdata.xml");
                }
                //返回查询数据
                return XDocument.Load(Server.MapPath("Selectdata.xml")).ToString();
            }

                   4. JS文件

                    

     $(function () {
            $("#send").click(function () {
                $.ajax({
                    type: "post",  //发送方式
                    url: "Handler.ashx",//发送文件地址
                    data: { author: $("#author").val(), msg: $("#msg").val() },   //参数
                    datatype: "xml",   //返回数据格式
                    success: function (data) {    //执行成功的执行方法
                        $("#messagewindow").empty(); //清空文件
                        //在data文件循环Node节点文件
                        $("Node", data).each(function () {
                            // $("User", this).text()  在Node节点里查询User 节点文本
                            var Msg = "User :" + $("User", this).text() + "<br/>Message:" + $("Msg", this).text() + "<br/>date:" + $("Date", this).text() + "<br/><br/>"
                            //将处理文件插入div中
                            $("#messagewindow").append(Msg);
                        });
                    }
                });
            });
        });

                     5.在web.config 中配置.ashx文件

                  

    <system.web>
    <httpHandlers >
          <!--<add verb="请求路径名称( 只有当请求Handler.ashx时才执行该文件)" path="请求方式(get/post)" type="类型(命名空间+.ashx文件名)">-->
          <add verb="Handler.ashx" path="*" type="WeAppJqueryChart.Handler" validate="true"/>
        </httpHandlers>
    </system.web>

                  

  • 相关阅读:
    Codeforces 691A Fashion in Berland
    HDU 5741 Helter Skelter
    HDU 5735 Born Slippy
    HDU 5739 Fantasia
    HDU 5738 Eureka
    HDU 5734 Acperience
    HDU 5742 It's All In The Mind
    POJ Euro Efficiency 1252
    AtCoder Beginner Contest 067 C
    AtCoder Beginner Contest 067 D
  • 原文地址:https://www.cnblogs.com/jiangqiang/p/2800528.html
Copyright © 2011-2022 走看看