>  기사  >  백엔드 개발  >  .net 및 ajax 학습에 대한 자세한 사례 요약

.net 및 ajax 학습에 대한 자세한 사례 요약

高洛峰
高洛峰원래의
2016-12-16 16:32:411006검색

먼저 Ajax가 무엇인지 이해하세요.

AJAX는 새로운 프로그래밍 언어가 아니라 더 훌륭하고 빠르며 대화형인 웹 애플리케이션을 만들기 위한 기술입니다.
AJAX를 사용하면 JavaScript가 JavaScript의 XMLHttpRequest 개체를 사용하여 서버와 직접 통신할 수 있습니다. 이 개체를 통해 JavaScript는 페이지를 다시 로드하지 않고도 웹 서버와 데이터를 교환할 수 있습니다.
AJAX는 브라우저와 웹 서버 간의 비동기 데이터 전송(HTTP 요청)을 사용하므로 웹 페이지가 전체 페이지 대신 서버에서 소량의 정보를 요청할 수 있습니다.

자바스크립트라면 누구나 브라우저 호환성 문제를 떠올릴 것입니다. 사실 ajax도 이 문제를 고려해야 합니다. 브라우저마다 사용하는 웹 자바스크립트 클래스가 다르기 때문에 생성되는 효과는 동일하지 않습니다. 아래에서 더 이상 말도 안되는 소리는 하지 마세요. 참고할 수 있도록 코드를 직접 소개하세요.
  {
   var xmlhttp;//IE가 아닌 브라우저는 XmlHttpRequest 객체를 생성합니다
  >         }
                            ~                       } xmlhttprequest 객체 생성
if (Window.activexObject) {
시도 {
xmlhttp = 새 ActivexObject("Microsoft.xmlhttp"); (E) { 다음을 시도하세요. ~ >                                         / 서버 페이지에 요청
"                         xxxxx = xmlhttp.responseText; //여기서 html 태그 또는 기타 변수 처리 문제에 전달한 매개변수를 반환할 수 있습니다.
                                          >> ~       . 아래 배경 코드는 프로젝트에 따라 다르므로 여기서 소개할 필요는 없습니다.

이러한 코드를 보면 어떤 느낌이 드나요? 이제 막 자바스크립트나 ajax를 배운 학생들은 이 코드를 기억하기가 정말 어렵습니다. 위에서 제가 기본적으로 말한 내용을 어떻게 이해하시나요? 누구나 일반적으로 이해할 수 있습니다. 하지만 각 페이지를 부분적으로 새로 고쳐야 하는 경우 각 페이지에 대해 이러한 코드를 작성하는 것이 매우 번거롭게 느껴질 것입니다. jQuery는 많은 작업을 완료하는 데 도움이 되었으며, 이는 프로젝트 개발의 어려움을 줄일 수 있습니다. jQuery 코드 사용:

$.ajax({

유형: "POST",

url: "some.php",

데이터: "name=John&location=Boston",

성공: function(msg){
Alert( "저장된 데이터: " + msg );
}
}); 다른 방법

$.post("test.php ", { name: "John", time: "2pm" },
function(data){
Alert("Data Loaded: " + data);

}); 아주 간단하지 않나요? 우리는 그가 작성한 함수를 호출하고 있으며 새로 고침이 없는 코드를 구현할 수 있습니다. 이제 새로 고치지 않고 페이지를 새로 고치는 것이 매우 간단하다고 느껴지지만 데이터베이스에서 데이터를 추출하는 경우에는 작은 데이터만 전달하는 것입니다. 매우 번거롭습니다. 이에 대해 생각해 볼 수 있는 코드는 다음과 같습니다.


다음은 새로 고치지 않는 주석을 구현하고 표시하는 데 사용한 프런트엔드 및 백엔드 코드입니다.

<% @ Page Language="C#" AutoEventWireup="true" CodeBehind="AjaxComment.aspx.cs" Inherits="ajax learning. 새로 고침 주석이 없습니다.AjaxComment1" %>



   
   
   


   



                    DeleteMethod="삭제" InsertMethod="삽입"
           OldValuesParameterFormatString="original_{0}" SelectMethod="GetData "
            TypeName="ajaxschool习.DataSetCommentTableAdapters.T_CommentTableAdapter"
           UpdateMethod="Update">
           
               & lt;asp:매개변수 이름="Original_Id" Type="Int64" / >
           

           
              
               
               
           

           
               
               
               
               
           

       

       

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

  •            

           

           

   

    value="提交" />
   

   


后台代码(AjaxComment.ashx)

시스템 사용;
System.Collections.Generic 사용;
System.Linq 사용;
System.Web 사용;
ajax를 사용합니다.刷新评论
{
    ///


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

    [WebService(네임스페이스 = "http:// tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    public class 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

        {

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

前台代码:




   
   
   


   


       


    后台代码:

    System 사용;
    System.Collections.Generic 사용;
    System.Linq 사용;
    System.Web 사용;
    System.Web.Services 사용;
    ajax 사용학习.DataSetCommentTableAdapters 사용 ;
    System.Web.Script.Serialization 사용;
    네임스페이스 ajaxschool习.无刷新分页
    {
        ///


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

        [WebService(Namespace = "http://tempuri.org/")]
        [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
        공개 클래스 PagedServices : IHttpHandler
        {

            public void ProcessRequest(HttpContext context)
            {
               context.Response.ContentType = "text/plain";
                 // context.Response.Write("Hello World" );
                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)
                  {
                      페이지 수++;
                   }
                    컨텍스트 .Response.Write(pagecount);
                }
                else if(action=="getpagedata")
                {
                   string pagenum=context.Request["pagenum"];
                    int iPageNum = Convert.ToInt32(pagenum);
                    var data = Adapter.GetPagedData((iPageNum - 1) * 10 + 1, iPageNum * 10);
                   List list=new 목록<댓글> ();
                    foreach(var row in data)
                   {
                      list.Add(new Comments() { Id = (int)row.Id, IP = row.IP, Msg = row.Msg, PostDate = row.PostDate, });
                   }
                   JavaScriptSerializer jss = new JavaScriptSerializer();
                  context.Response.Write(jss.Serialize(list));
                } 
            }

            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" %>



       
       
       


       


       

       
           
               
                    //注意路径处理问题,
               

           

           
           
           

       
       

       


    백엔드 코드: (PersonService.svc)

    System 사용,
    System.Collections 사용. 일반;
    System.Linq 사용;
    System.Runtime.Serialization 사용;
    System.ServiceModel 사용;
    System.ServiceModel.Activation 사용;
    System.ServiceModel.Web 사용;
    System.Text 사용;

    WCF Ajax 학습
    {
    [ServiceContract(Namespace = "")]
    [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
    public class PersonService
    {
    // HTTP GET을 사용하려면 [WebGet] 속성을 추가하세요. (기본 응답 형식은 WebMessageFormat.Json입니다.)
                                                                                                                                       줄:
                                                                                   WebOperationContext.Current.           WebOperationContext.Current.OutgoingResponse.ContentType = "text/xml";                                      여기에 작업 구현 추가
             ,Age=30 };
                                                                                                                > > public int Age{get;set;}

    }
    }





    .net, ajax 학습에 대한 자세한 사례 요약은 PHP 중국어 홈페이지를 참고해주세요!


    성명:
    본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
    이전 기사:Asp.net Jquery Ajax 예다음 기사:Asp.net Jquery Ajax 예