9 ответов:
$.ajax()является наиболее настраиваемым, где вы получаете мелкозернистый контроль над заголовками HTTP и тому подобное. Вы также можете получить прямой доступ к XHR-объекту, используя этот метод. Также предусмотрена немного более мелкозернистая обработка ошибок. Поэтому может быть более сложным и часто ненужным, но иногда очень полезным. Вы должны иметь дело с возвращенными данными самостоятельно с обратным вызовом.
$.get()- это просто сокращение для$.ajax()но абстрагирует некоторые конфигурации прочь, устанавливая разумные значения по умолчанию для того, что он скрывает от вас. Возвращает данные для обратного вызова. Это позволяет только GET-запросы так сопровождается$.post()функция для подобной абстракции, только для POST
.load()похож на$.get()но добавляет функциональность, которая позволяет определить, где в документе возвращаемые данные должны быть вставлены. Поэтому действительно можно использовать только тогда, когда вызов приведет только к HTML. Она называется несколько иначе, чем другие, глобальные, вызывает, поскольку это метод, привязанный к конкретному элементу DOM, обернутому jQuery. Поэтому можно было бы сделать:$('#divWantingContent').load(...)следует отметить, что все
$.get(),$.post(),.load()все это просто обертки для$.ajax()Как это называется внутренне.более подробная информация в Ajax-документации jQuery:http://api.jquery.com/category/ajax/
методы обеспечивают различные уровни абстракции.
$.ajax()дает вам полный контроль над запросом Ajax. Вы должны использовать его, если другие методы не удовлетворяют ваши потребности.
$.get()выполняет AjaxGETзапрос. Возвращенные данные (которые могут быть любыми данными) будут переданы обработчику обратного вызова.
$(selector).load()выполнит AjaxGETзапрос и установит содержание выбранные возвращенные данные (которые должны быть либо текстовыми, либо HTML).это зависит от ситуации, какой метод следует использовать. Если вы хотите делать простые вещи, нет необходимости беспокоиться с
$.ajax().например, вы не будете использовать
$.load(), если возвращаемые данные будут в формате JSON, который должен быть обработан дополнительно. Здесь вы бы либо использовали$.ajax()или$.get().
http://api.jquery.com/jQuery.ajax/
jQuery.ajax()описание: выполните асинхронный HTTP (Ajax) запрос.
полный Монти, позволяет сделать любой вид запроса Ajax.
http://api.jquery.com/jQuery.get/
jQuery.get()описание: загрузите данные с сервера с помощью запроса HTTP GET.
позволяет только вы делаете запросы HTTP GET, требуется немного меньше конфигурации.
.load()описание: загрузите данные с сервера и поместите возвращенный HTML в соответствующий элемент.
специализированный для того чтобы получить данные и впрыснуть его в элемент.
очень простой, но
$.load(): загрузите фрагмент html в контейнер DOM.$.get(): используйте это, если вы хотите сделать GET вызов и играть широко с ответом.$.post(): используйте это, если вы хотите сделать POST позвоните и не хотите загружать ответ на какой-то контейнер DOM.$.ajax(): используйте это, если вам нужно что-то сделать, когда XHR терпит неудачу, или вам нужно указать параметры ajax (например кэш: true) на лету.
важное замечание :jQuery.нагрузки() метод может не только GET, но и POST запросы, если данные параметр указан (см.:http://api.jquery.com/load/)
данные тип: PlainObject или String простой объект или строка, которая отправляется на сервер с запросом.
Метод Запроса POST метод используется, если данные как объект; в противном случае, GET предполагается.
Example: pass arrays of data to the server (POST request) $( "#objectID" ).load( "test.php", { "choices[]": [ "Jon", "Susan" ] } );
каждый имеет на это право. Функции
.load,.getи.post, различные способы использования функции.ajax.лично я нахожу .ajax raw функция очень запутанная, и предпочитают использовать load, get или post, Как мне это нужно.
сообщение имеет следующую структуру:
$.post(target, post_data, function(response) { });GET имеет следующее:
$.get(target, post_data, function(response) { });нагрузка имеет следующее:
$(*selector*).load(target, post_data, function(response) { });как вы можете видеть, есть небольшие различия между их, потому что это ситуация, который определяет, какой из них использовать. Нужно отправить информацию в файл внутренне? Использовать.сообщение (это будет большинство случаев). Нужно отправить информацию таким образом, чтобы вы могли предоставить ссылку на конкретный момент? Использовать.получить. Оба они позволяют обратный вызов, где вы можете обрабатывать ответ файлов.
важно отметить, что .нагрузка действует двумя разными способами. Если вы предоставляете только URL-адрес целевого документа, он будет акт как получить (и я говорю действовать, потому что я проверил проверку на
$_POSTв вызываемом PHP при использовании по умолчанию .поведение нагрузки и он обнаруживает$_POST, а не$_GET; может быть, было бы точнее сказать, он действует как .сообщение без каких-либо аргументов); однако, как http://api.jquery.com/load/ говорит, что как только вы предоставите массив аргументов функции, она отправит информацию в файл. Как бы то ни было .функция нагрузки сразу введет информацию в элемент DOM, который во многих случаях очень разборчив и очень прямой; но все же обеспечивает обратный вызов, если вы хотите сделать что-то еще с ответом. Кроме того. ,load позволяет извлекать определенный блок кода из файла, что дает возможность сохранять каталог, например, в html-файле, и извлекать его фрагменты (элементы) непосредственно в элементы DOM.
$.get = $.ajax({type: 'GET'});
$.load()является вспомогательной функцией, которая может быть вызвана только на элементах.
$.ajax()дает вам максимальный контроль. вы можете указать, хотите ли вы публиковать данные, получили больше обратных вызовов и т. д.
все очень хорошо объяснил тему. Есть еще один момент хотелось бы добавить .метод Load.
по состоянию на загрузить документ если вы добавите суффикс селектора в url данных, то он не будет выполнять скрипты при загрузке контента.
$(document).ready(function(){ $("#secondPage").load("mySecondHtmlPage.html #content"); })С другой стороны, после удаления селектора в url, скрипты в новом контенте будут выполняться. Попробуй
после удаления #content в url в индексе.html файл
$(document).ready(function(){ $("#secondPage").load("mySecondHtmlPage.html"); })нет такой встроенной функции, предоставляемой другими методами в обсуждении.
оба используются для отправки некоторых данных и получения некоторого ответа, используя эти данные.
GET: получить информацию, хранящуюся на сервере. (т. е. поиск, твит, информация о человеке). Если вы хотите отправить информацию, то получить запрос отправить запрос с помощью
process.php?name=subrotoтаким образом, он в основном отправляет информацию через url. URL-адрес не может обрабатывать более чем на 2036 ЗН. Так что для блога вы можете вспомнить, что это невозможно?POST: сообщение делает то же самое, что и GET. Пользователь регистрация, логин пользователя, отправка больших данных, запись в блоге. Если вам нужно отправить защищенную информацию, то используйте post или для больших данных, поскольку они не проходят через url.
AJAX:
$.get()и$.post()содержит функции, которые являются подмножествами$.ajax(). Он имеет больше конфигурации.
$.get ()метод, который является своего рода стенография для$.ajax(). При использовании$.get (), вместо передачи объекта, вы передаете аргументы. Как минимум, вам понадобятся первые два аргумента, которые являются URL-адрес файла, который вы хотите получить (например.
Comments