내 백엔드에서 jquery 1.4.1과 최신 UI 1.8rc1을 사용하고 있습니다. 몇 가지 버튼을 정의했습니다 ... 하나는 PHP 파일을 호출 한 다음 전체 페이지를 다시로드하는 serialize 함수를 사용하여 특정 유형의 페이지를 만드는 것입니다. 로컬에서는 항상 매력처럼 작동합니다! 하지만 내 제공자 웹 서버에 올려 놓는 즉시 약 5 % 만 작동합니다. Heres는 코드 : 난 그냥 location.reload 부분 전에 경고에 넣어 때jQuery AJAX 타이밍 문제
buttons: {
'Seite erstellen': function() {
$.post("webadmin/pages.create.serialize.php",$("#page-form").serialize());
$(this).dialog('close');
location.reload(true);
},
'Abbrechen': function() {
$(this).dialog('close');
}
},
흥미 얻는다 - 그것은 항상 작동합니다. 따라서 직렬화가 실행되지만 페이지를 다시로드하기 전에 완료 할 수없는 타이밍 문제가있는 것으로 보입니다. 내가 serialzing을 사용하여 페이지의 페이지를 다시로드하지 말아야한다는 의미를 알고 있지만, 그래서 다시로드해야 탐색 등을 빌드합니다. (지금 생각해 보면 ... 모든 것을 직렬화 할 수 있습니다 ... 어쨌든) 이것에 대한 간단한 해결책이 있습니까? 직렬화가 완료 될 때까지 기다릴 수 있도록 빌드 할 수있는 작은 타이머 같은 것이 있습니까? 이것은 정상적인 행동입니까? 그래서 같은 구현을 떠날거야 "이"콜백 함수의 내부를 말합니다 무엇
$.post(
"webadmin/pages.create.serialize.php",
$("#page-form").serialize(),
function(data, textStatus, xhr) {
alert("I'm done loading now!");
}
);
정확하게 확실하지 :
"this"는 buttons 객체가 일부인 대화 상자 객체를 나타냅니다. 그래서 그는 "var self = this;"와 같은 것을 정의 할 필요가 있습니다. 대화 상자의 내부이지만 콜백 외부에서 호출 한 다음 콜백 내부에서 "this"대신 "self"를 사용하십시오. –
고마워요,하지만 제안 할 것이지만 var x =이 비트를 피하는 더 좋은 방법이 있는지 의문을 제기했습니다. – roufamatic
고마워요 - 모든 작품은 지금 매력처럼! 그리고 다시로드를 모두 종료하고 콜백의 모든 div를 업데이트하기로 결정했습니다. –