2014-04-16 9 views
0

링크로 작동하는 사용자 스크립트를 개발 중입니다. 사용자가 링크 (오른쪽 또는 왼쪽 클릭)를 클릭 할 때 코드를 수행해야합니다. 이 코드는 서버에 아약스 요청을 보내고 응답에 따라 링크 href attrubute가 변경 될 수 있으므로 사용자는 완료되지 않은 동안 링크를 사용하지 않아야합니다. 인스턴트 메신저 사용자 정의 이벤트 처리기에 의해 왼쪽 클릭을 지연하고 잘 작동하지만, 난 완전히 그것을 해제하는 표준 드롭 다운 메뉴를 지연하는 방법을 찾을 수 없습니다.컨텍스트 메뉴 모양 지연

정말 도움이됩니다.

+1

지금까지 작성한 코드를 제공해주십시오. –

답변

0

synchronous AJAX request에 대한 몇 가지 유효한 사용 사례 중 하나 일 수 있습니다. 직접 XMLHttpRequest를 사용하는 경우

, 당신은 .open() 방법에 세 번째 매개 변수로 false을 전달하여 동기 요청을 할 수 있습니다. (위의 링크 된 MDN 페이지에서 예제 코드)

var request = new XMLHttpRequest(); 
request.open('GET', '/bar/foo.txt', false); // `false` makes the request synchronous 
request.send(null); 

if (request.status === 200) { 
    console.log(request.responseText); 
} 

jQuery를 사용하는 경우 async: falsejQuery.ajax()에 전달하여 동기식 요청을 할 수 있습니다. 자세한 내용은 jQuery: Performing synchronous AJAX requests을 참조하십시오.

그러나 일반적으로 동기식 AJAX 요청은 거의 항상 나쁜 아이디어입니다. 서버 (및 인터넷 연결)가 요청을 매우 빠르고 안정적으로 처리하는 한 제대로 작동하지만 서버에 과부하가 발생하거나 연결이 끊어 지거나 마우스 클릭으로 몇 초간 기다려야하는 경우 효과가 있으면 성가 시게 될 수 있습니다.

+0

감사! 그게 많이 도움 :) – AlexTR