>웹 프론트엔드 >JS 튜토리얼 >$.Ajax() 메소드 매개변수의 종합 분석(그래픽 튜토리얼)

$.Ajax() 메소드 매개변수의 종합 분석(그래픽 튜토리얼)

亚连
亚连원래의
2018-05-23 16:56:461976검색

AJAX는 빠르고 역동적인 웹 페이지를 만드는 데 사용되는 기술입니다. 이 글에서는 $.Ajax() 메소드 매개변수의 종합적인 분석에 대한 관련 정보를 주로 소개합니다(권장). 먼저 Ajax 개념을 소개하겠습니다

AJAX는 "Asynchronous Javascript And XML"(Asynchronous JavaScript and XML)의 약자로 대화형 웹 애플리케이션을 만들기 위한 웹 개발 기술을 의미합니다. AJAX = 비동기 JavaScript 및 XML(표준 범용 마크업 언어의 하위 집합).

AJAX는 빠르고 동적인 웹 페이지를 만드는 기술입니다.

AJAX를 사용하면 백그라운드에서 서버와 소량의 데이터를 교환하여 웹페이지를 비동기적으로 업데이트할 수 있습니다. 이는 전체 페이지를 다시 로드하지 않고도 웹페이지의 일부를 업데이트할 수 있음을 의미합니다.

AJAX를 사용하지 않는 기존 웹페이지에서는 콘텐츠를 업데이트해야 하는 경우 전체 웹페이지를 다시 로드해야 합니다.

ajax 메소드

$.ajax() 메소드는 jQuery의 가장 낮은 수준의 Ajax 구현입니다. 구조는 다음과 같습니다.  $.ajax(options)

이 메소드에는 매개변수가 하나만 있지만 이 객체에는 $.ajax() 메소드에 필요한 요청 설정 및 콜백 함수가 포함되어 있습니다. 매개변수는 키/값입니다. 양식이 존재합니다. 모든 매개변수는 선택사항입니다. 일반적으로 사용되는 매개변수는 아래 표와 같습니다.

1.url

요청한 페이지를 전송하려면 문자열 유형의 매개변수(기본값은 현재 주소)가 필요합니다.

2.type

에는 문자열 유형의 매개변수가 필요하며 요청 방법(post 또는 get)은 기본적으로 get으로 설정됩니다. put 및 delete와 같은 다른 http 요청 방법도 사용할 수 있지만 일부 브라우저에서만 지원됩니다.

3.timeout

에는 Number 유형의 매개변수가 필요하며 요청 제한 시간(밀리초)을 설정합니다. 이 설정은 $.ajaxSetup() 메서드의 전역 설정을 재정의합니다.

4.async

에는 부울 유형의 매개변수가 필요합니다. 기본 설정은 true입니다. 동기 요청이 필요한 경우 이 옵션을 false로 설정하세요. 동기 요청은 브라우저를 잠그며 사용자는 다른 작업을 수행하기 전에 요청이 완료될 때까지 기다려야 합니다.

5.cache

는 부울 유형 매개변수여야 하며 기본값은 true(dataType이 Script인 경우 기본값은 false)이며, false를 설정하면 브라우저 캐시에서 요청 정보를 로드하지 않습니다.

6.data

에는 개체 또는 문자열 유형의 매개변수, 서버로 전송되는 데이터가 필요합니다. 문자열이 아닌 경우 자동으로 문자열 형식으로 변환됩니다. get 요청이 URL에 추가됩니다. 이러한 자동 변환을 방지하려면 processData 옵션을 볼 수 있습니다. 객체는 키/값 형식이어야 합니다. 예를 들어 {foo1:"bar1",foo2:"bar2"}는 &foo1=bar1&foo2=bar2로 변환됩니다. 배열인 경우 JQuery는 자동으로 동일한 이름을 다른 값에 할당합니다. 예를 들어, {foo:["bar1","bar2"]}는 &foo=bar1&foo=bar2로 변환됩니다.

7.dataType

에는 서버에서 반환할 것으로 예상되는 데이터 유형인 문자열 유형의 매개변수가 필요합니다. 지정하지 않으면 jQuery는 HTTP 패키지의 광산 정보를 기반으로 responseXML 또는 responseText를 자동으로 반환하고 이를 콜백 함수 매개 변수로 전달합니다. 사용 가능한 유형은 다음과 같습니다.  xml: jQuery로 처리할 수 있는 XML 문서를 반환합니다.

 html: 일반 텍스트 HTML 정보를 반환합니다. 포함된 스크립트 태그는 DOM에 삽입될 때 실행됩니다.

 script: 일반 텍스트 자바스크립트 코드를 반환합니다. 캐시 매개변수가 설정되지 않으면 결과가 자동으로 캐시되지 않습니다. 원격 요청(동일한 도메인 아래가 아님)을 수행할 때 모든 게시 요청은 가져오기 요청으로 변환됩니다.

 json: JSON 데이터를 반환합니다.

 jsonp: JSON 형식. myurl?callback=?과 같은 JSONP 형식을 사용하여 함수를 호출하면 JQuery는 자동으로 마지막 "?"를 올바른 함수 이름으로 대체하여 콜백 함수를 실행합니다.

 text: 일반 텍스트 문자열을 반환합니다.

8.beforeSend

에는 함수 유형의 매개변수가 필요합니다. 요청을 보내기 전에 사용자 정의 HTTP 헤더를 추가하는 등 XMLHttpRequest 객체의 기능을 수정할 수 있습니다. beforeSend에서 false가 반환되면 이 ajax 요청을 취소할 수 있습니다. XMLHttpRequest 객체가 유일한 매개변수입니다.

function(XMLHttpRequest){
    this;//调用本次ajax请求时传递的options参数
  }

9.complete

에는 요청이 완료된 후 호출되는 콜백 함수(요청 성공 또는 실패 여부에 따라 호출됨)인 함수 유형의 매개변수가 필요합니다. 매개변수: XMLHttpRequest 객체와 성공적인 요청 유형을 설명하는 문자열.

  function(XMLHttpRequest,textStatus){
    this; //调用本次ajax请求时传递的options参数
  }

10.success

요청 성공 후 호출되는 콜백 함수에는 두 개의 매개변수가 필요합니다.   (1) 서버에서 반환하고 dataType 매개변수에 따라 처리되는 데이터입니다.

  (2) 상태를 설명하는 문자열입니다.

  function(data,textStatus){
    //data可能是xmlDoc、jsonObj、html、text等
    this; //调用本次ajax请求时传递的options参数
  }

11.error

要求为Function类型的参数,请求失败时被调用的函数。该函数有3个参数,即XMLHttpRequest对象、错误信息、捕获的错误对象(可选)。ajax事件函数如下:

  function(XMLHttpRequest,textStatus,errorThrown){
    //通常情况下textStatus和errorThrown只有其中一个包含信息
    this; //调用本次ajax请求时传递的options参数
  }

12.contentType

要求为String类型的参数,当发送信息至服务器时。内容编码类型默认为"application/x-www-form-urlencoded"。该默认值适合大多数应用场合。

13.dataFilter

要求为Function类型的参数,给Ajax返回的原始数据进行预处理的函数。提供data和type两个参数。data是Ajax返回的原始数据,type是调用jQuery.ajax时提供的dataTYpe参数。函数返回的值将由jQuery进一步处理。

  function(data,type){
    //返回处理后的数据
    return data;
  }

14.global

要求为Boolean类型的参数,默认为true。表示是否触发全局ajax事件。设置为false将不会触发全局ajax事件,ajaxStart和ajaxStop可用于控制各种ajax事件。

15.ifModified

要求为Boolean类型的参数,默认为false。仅在服务器数据改变时获取新数据。服务器数据改变判断的依据是Last-Modified头信息。默认值是false,即忽略头信息。

16.jsonp

要求为String类型的参数,在一个jsonp请求中重写回调函数的名字。该值用来替代在"callback=?"这种GET或POST请求中URL参数里的"callback"部分,例如{jsonp:'onJsonPLoad'}会导致将"onJsonPLoad=?"传给服务器。

17.username

要求为String类型的参数,用于响应HTTP访问认证请求的用户。

18.password

要求为String类型的参数,用于响应HTTP访问认证请求的密码。

19.processData

要求为Boolean类型的参数,默认为true。默认情况下,发送的数据将被转换为对象(从技术角度来讲而非字符串)以配合默认内容类型"application/x-www-form-urlencoded"。如果要发送DOM树信息或者其他不希望转换的信息,请设置为false。

20.scriptCharset

要求为String类型的参数,只有当请求时dataType为"jsonp"或者"script",并且type是GET时才会用于强制修改字符集(charset)。通常在本地和远程的内容编码不同时使用。

案例代码:

$(function(){
 $('#send').click(function(){
  $.ajax({
  type: "GET",
  url: "test.json",
  data: {username:$("#username").val(), content:$("#content").val()},
  dataType: "json",
  success: function(data){
    $('#resText').empty(); //清空resText里面的所有内容
    var html = '';
    $.each(data, function(commentIndex, comment){
    html += &#39;<p class="comment"><h6>&#39; + comment[&#39;username&#39;]
      + &#39;:</h6><p class="para"&#39; + comment[&#39;content&#39;]
      + &#39;</p></p>&#39;;
    });
    $(&#39;#resText&#39;).html(html);
   }
  });
 });
});

知识链接:

1、$.each()函数:$.each()函数不同于jQuery对象的each()方法,它是一个全局函数,不操作jQuery对象。该函数接收两个参数,第1个参数是一个数组或对象,第2个参数是一个回调函数。回调函数拥有两个参数:第1个参数为数组的索引或对象的成员,第2个参数为对应的变量或内容。

  $.each(data,function(commentIndex,comment){
  //doSomething;
 })

2、ajaxStart()与ajaxStop():当Ajax请求开始时,会触发ajaxStart()方法的回调函数。当Ajax请求结束时,会触发ajaxStop()方法的回调函数。这些方法都是全局的方法,因此无论创建它们的代码位于何处,只要有Ajax请求发生时,就会触发它们。

有时候页面需要加载一些图片,可能速度回比较慢,如果在加载过程中,不给用户提供一些提示和反馈信息,很容易让用户误认为按钮单击无用,使用户对网站失去信息。

此时,我们就需要为网页添加一个提示信息,常用的提示信息是“加载中...”,代码如下:

<p id="loading">加载中...</p>

当Ajax请求开始时,将此元素显示,用来提示用户Ajax请求正在进行;当Ajax请求结束后,将此元素隐藏。代码如下:

$("#loading").ajaxStart(function(){
    $(this).show();
  }).ajaxStop(function(){
 $(this).hide();
 })

好了,下面再给大家分享一个案例代码:

$(function(){
 $(&#39;#send&#39;).click(function(){
  $.ajax({
  type: "GET",
  url: "test.json",
  data: {username:$("#username").val(), content:$("#content").val()},
  dataType: "json",
  success: function(data){
    $(&#39;#resText&#39;).empty(); //清空resText里面的所有内容
    var html = &#39;&#39;; 
    $.each(data, function(commentIndex, comment){
    html += &#39;<p class="comment"><h6>&#39; + comment[&#39;username&#39;]
      + &#39;:</h6><p class="para"&#39; + comment[&#39;content&#39;]
      + &#39;</p></p>&#39;;
    });
    $(&#39;#resText&#39;).html(html);
   }
  });
 });
});

上面是我整理给大家的,希望今后会对大家有帮助。

相关文章:

IE8下Ajax缓存问题及解决办法

IE8/IE9下Ajax缓存问题

IE8用ajax访问不能每次都刷新的问题

위 내용은 $.Ajax() 메소드 매개변수의 종합 분석(그래픽 튜토리얼)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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