Jquery는 첫 번째 ax 함수 호출이 완전히 완료된 후 다른 ax 함수를 계속합니다.
저는 2개의 다른 기능으로 2개의 ajax call을 가지고 있습니다..click을 사용하여 이 두 기능을 호출하고자 합니다.func1은 데이터를 데이터베이스에 삽입하는 것이고, func2는 데이터를 검색하는 것이므로 func1이 완전히 완료될 때까지 기다렸다가 func2만 실행하는 방법이 제 질문입니다.
.delay()를 시도해 보았는데 효과가 있습니다. 하지만 이것은 어리석은 해결책이라고 생각합니다.
$("#updateLocation").click(function(e){
e.preventdefault;
func1();
func2();
});
return false;
});
function func1(){
$.ajax({
url:'',
});
});
function func2(){
$.ajax({
url:'',
});
});
세가지 방법:
func1 성공 시 func2 호출:
function func1() {
$.ajax({ ... }).done(func2);
}
사용하다Deferred
펑키가 완료되면 func2를 호출하는 API:
e.preventDefault();
$.when(func1).then(func2);
func1을 동기화합니다(권장하지 않음):
function func1() {
$.ajax({url: '', async: false});
}
Ajax 호출은 비동기식이므로, 애플리케이션은 Ajax 호출이 완료될 때까지 '일시 중지'되지 않고, 바로 다음 호출을 시작하기만 하면 됩니다.
JQuery는 통화가 성공할 때 호출되는 핸들러와 통화 중 오류가 발생할 때 호출되는 핸들러를 제공합니다.
$.ajax({
url: 'ajax/test.html',
success: function(data) {
$('.result').html(data);
alert('Load was performed.');
},
error :function(jqXHR, textStatus, errorThrown)
{
alert("something went wrong");
}
});
성공 핸들러에서 두 번째 AJAX 함수를 호출합니다.
func2 안으로 이동 func1->ajax->succe callback
$("#updateLocation").click(function(e) {
e.preventdefault;
func1();
//func2();
});
return false;
});
function func1() {
$.ajax({
url: '',
success: function() { /* other stuff */
func2();
}
});
});
function func2() {
$.ajax({
url: '',
});
});
"비동기" 옵션을 false(첫 번째 axis 호출의 경우)로 설정할 수 있습니다.
즉, 함수 1이 응답을 수신한 후, 즉 실행이 완료된 후 함수 2가 호출됨을 의미합니다.
function func1(){
$.ajax({
url:'',
async: false
});
});
호출 fun2 성공 func1
function func1(){
$.ajax({
url:'',
success:function(){
func2();
}
})
단순히 ajaxComplete 함수를 사용하면 3개의 옵션 파라미터가 있으며 설정에서 parameter ajax action URL 또는 우리가 받은 type data를 기반으로 조건을 설정할 것입니다.
$( document ).ajaxComplete(function( event, xhr, settings ) {
if( settings.url != '/wp-admin/admin-ajax.php?action=get_location_form' && settings.type === 'POST') {
get_location_form(); // replace function with your custom logic here
}
});
다음과 같은 매개 변수로서의 기능을 전달할 수도 있습니다.
var secondFunc = function (func) {
//Do ajax req or smt
func("answer", "params");
};
var firstFunc = function() {
secondFunc(
function (answerFromFunc2, paramsFromfunc2) {
var a = answerFromFunc2;
var b = paramsFromfunc2;
}
);
//Do smt after the function request to the server is done
var doSmt = "another func or variable";
};
firstFunc();
언급URL : https://stackoverflow.com/questions/12516912/jquery-continue-another-ajax-function-after-the-first-ajax-function-call-is-full
'programing' 카테고리의 다른 글
MySQLDump에서 생성된 SQL 파일을 명령 프롬프트를 사용하여 복원하는 방법 (0) | 2023.09.08 |
---|---|
VBA에서 수식을 삽입할 때 다른 언어 문제 발생 (0) | 2023.09.08 |
각도 2: 상위 구성 요소에서 RouteParams 가져오기 (0) | 2023.09.03 |
Spring-boot 및 spring-data-jpa가 로드된 경우 최대 절전 모드에서 JPA 2.1 컨버터를 로드하지 못함 (0) | 2023.09.03 |
사용자가 단추를 두 번 클릭하지 않도록 하려면 어떻게 해야 합니까? (0) | 2023.09.03 |