Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Fallzusammenfassung des Lernens von .net und Ajax

Detaillierte Fallzusammenfassung des Lernens von .net und Ajax

高洛峰
高洛峰Original
2016-12-16 16:32:411006Durchsuche

Verstehen Sie zunächst, was Ajax ist.

AJAX ist keine neue Programmiersprache, sondern eine Technologie zur Erstellung besserer, schnellerer und interaktiverer Webanwendungen.
Mit AJAX kann Ihr JavaScript über das XMLHttpRequest-Objekt von JavaScript direkt mit dem Server kommunizieren. Über dieses Objekt kann Ihr JavaScript Daten mit dem Webserver austauschen, ohne die Seite neu zu laden.
AJAX verwendet asynchrone Datenübertragung (HTTP-Anfragen) zwischen dem Browser und dem Webserver, was es einer Webseite ermöglicht, statt der gesamten Seite kleine Informationsmengen vom Server anzufordern.

Wenn es um Javascript geht, denkt jeder an Browserkompatibilitätsprobleme. Tatsächlich muss Ajax dieses Problem ebenfalls berücksichtigen. Da die von verschiedenen Browsern verwendeten Web-Javascript-Klassen unterschiedlich sind, sind die erzeugten Effekte nicht gleich. Kein Unsinn mehr, geben Sie einfach den Code direkt als Referenz ein.
  {
   var xmlhttp;//Nicht-IE-Browser erstellt XmlHttpRequest-Objekt
  >         .                                                                                                                                                             } XMLHTTPREQUEST-Objekte erstellen
if (Window.activexObject) {
Versuchen Sie es mit {
xmlhttp = New ActiveXObject ("microsoft.xmlhttp"); "                                                                                                                                                                                                                                                                                                         >}
Wie fühlst du dich, wenn du diese Codes siehst? Es ist wirklich schwierig, sich diese Codes zu merken, die ich oben gesagt habe Jeder kann es im Allgemeinen verstehen. Wenn jedoch jede Seite teilweise aktualisiert werden muss, wird es sich als sehr mühsam erweisen, solchen Code für jede Seite zu schreiben. jQuery hat uns dabei geholfen, viele Dinge abzuschließen, was die Schwierigkeit bei der Entwicklung unserer Projekte verringern kann Verwenden Sie den jQuery-Code:

$.ajax({

Typ: „POST“,

URL: „some.php“,

Daten: „name=John&location=Boston“,

Erfolg: function(msg){
warning( "Data Saved: " + msg );
}
}); Ein anderer Weg

$.post("test.php ", { name: „John“, time: „14 Uhr“ },
function(data){
warning("Data Loaded: " + data);

}); Wir rufen die von ihm geschriebene Funktion auf und können unseren No-Refresh-Code implementieren. Jetzt scheint es sehr einfach zu sein, die Seite ohne Aktualisierung zu aktualisieren, aber wir übergeben nur kleine Daten aus der Datenbank Sehr problematisch. Hier ist ein Teil meines Codes, damit Sie darüber nachdenken können


Das Folgende ist der Front-End- und Back-End-Code, den ich zum Implementieren und Anzeigen von Nicht-Aktualisierungskommentaren verwendet habe:

<% @ Page Language="C#" AutoEventWireup="true" CodeBehind="AjaxComment.aspx.cs" Inherits="ajax learning.No restart comment.AjaxComment1" %>



   
   
   


   



                    DeleteMethod="Delete" InsertMethod="Insert"
            OldValuesParameterFormatString="original_{0}" SelectMethod="GetData "
            TypeName="ajax学习.DataSetCommentTableAdapters.T_CommentTableAdapter"
            UpdateMethod="Update">
           .
               
           

           
               
               
               
           

           
               
               
               
               
           

       

       

           
               
                   
  • 评论日期:<%#Eval("PostDate")%>,IP:<%#Eval("IP")%>,内容:<%#Eval("Msg")%>

  •            

           

           

   

    value="提交" />
   

   


后台代码(AjaxComment.ashx)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using ajax学习.DataSetCommentTableAdapters;
using System.Web.Services;
namespace ajax学习.无刷新评论
{
    ///


    /// AjaxComment 的摘要说明
    ///

    [WebService(Namespace = "http:// tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    öffentliche Klasse AjaxComment: IHttpHandler
    {

        public void ProcessRequest(HttpContext. context)
        {
            context.Response.ContentType = "text/plain";
            string msg = context.Request["msg"];
            new T_CommentTableAdapter().Insert(context.Request.UserHostAddress,msg,DateTime.Now .ToString());//使的是强类型DataSet
            context.Response.Write("ok");
        }

        public bool IsReusable
       . {
            get
            {
                return false;
            }
        }
    }
}大家看完前台代码是不是有疑问了, 如果传递很多字段, 很多属性的数据时, 该怎么办呢, 如果每个数据都是这样的自己split()一下的话, 那么做大项目的话肯定会累屎了, 下面jQuery有帮我们做了件好事情, 就是json的使用, 下面我引入我的使用无刷新评论的json代码

前台代码:




   
   
   


   


       


    后台代码:

    mit System;
    mit System.Collections.Generic;
    mit System.Linq;
    mit System.Web;
    mit System.Web.Services;
    mit Ajax学习.DataSetCommentTableAdapters ;
    using System.Web.Script.Serialization;
    namespace ajax学习.无刷新分页
    {
        ///


        /// PagedServices 的摘要说明
    ///

        [WebService(Namespace = "http://tempuri.org/")]
        [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
        öffentliche Klasse PagedServices: IHttpHandler
        {

            public void ProcessRequest (HttpContext context) Welt" );
                string action=context.Request["action"];
                var adapter = new T_CommentTableAdapter();
                if (action == "getpagecount")
                       
    int count=adapter.SelectCount().Value;
                   int pagecount=count/10;
                   if(count%10!=0)
                  . {
                      pagecount++;
                    }
                    Kontext .Response.Write(pagecount);
                }
                else if(action=="getpagedata")
                {
                   string              int iPageNum = Convert.ToInt32(pagenum);
                    var data = adapter.GetPagedData((iPageNum - 1) * 10 + 1, iPageNum * 10);
                    List list=new List ();
                    foreach(var row in data)
                    {
                       list.Add(new Comments() { Id = (int)row.Id, IP = row.IP, Msg = row.Msg, PostDate = row.PostDate, });
                              } 
            }

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

        public class Comments
        {
            public int Id { get; set; }
            public string IP{get;set;}
            public string Msg{get;set;}
            public string PostDate{get;set;}
        }
    }这样我们真的是省了很多力气啊,是不是jQuery很强大啊。。。。。。。。。。。。。

    然后吧,微软感觉我必须封装自己的ajax,这样使得开发者做项目变得容易一些,微软真的是帮我们封装好了一个,但是对于高手来说,大家都不想用,感觉这样的代码太呆板,一点不灵活,我再下面引入代码,供新手参考:(不了解ajax运行原理的新手一样可以使用ajax快速开发新的项目)

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="UpdatPanel.aspx.cs" Inherits="ajax学习.UpdatePanel.UpdatPanel" %>

    <%@ Register assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" tagprefix="cc1" %>



       


       


       
       

       

           
            onclick="Button1_Click" />
       

       
      
           
               
                    Text="Ajax无刷新显示当前时间" />
                   

               

           

       

       


    但是微软后来真的是开发一个很好地工具,那就是ajax与WCF的结合,废话少说,引入代码,供大家思考

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WCF_Ajax.aspx.cs" Inherits="ajax学习.WCF之Ajax.WCF_Ajax" %>



       
       
       


       


       

       
           
               
                    //注意路径处理问题,
               

           

           
           
           

       
       

        


    Backend-Code: (PersonService.svc)

    unter Verwendung von System;
    unter Verwendung von System.Collections. Generisch;
    mit System.Linq;
    mit System.Runtime.Serialization;
    mit System.ServiceModel;
    mit System.ServiceModel.Activation;
    mit System.ServiceModel.Web;
    mit System.Text;

    Namespace-Ajax-Lernen
    {
    [ServiceContract(Namespace = "")]
    [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
    öffentliche Klasse PersonService
    {
    // Um ​​HTTP GET zu verwenden, fügen Sie das Attribut [WebGet] hinzu. (Standard ResponseFormat ist WebMessageFormat.Json)
                                                                                                                                               Zeile:
                                                                             WebOperationContext.Current.           WebOperationContext.Current.OutgoingResponse.ContentType = "text/xml";                                      Aktionsimplementierung hier hinzufügen
             return; 🎜>                                                                                                                                                                                         > public int Age{get;set;}

    }
    }





    Ausführlichere Fallzusammenfassungen zum Erlernen von .net und Ajax finden Sie auf der chinesischen PHP-Website!

    Stellungnahme:
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
    Vorheriger Artikel:Asp.net Jquery Ajax-BeispielNächster Artikel:Asp.net Jquery Ajax-Beispiel