2012-07-31 2 views

답변

1

질문에 대답하기 위해 프리 페치는 동기 AJAX를 사용하여 가능합니다. jQuery를 사용하면 전화로 구문을 확인할 수 있습니다.

$.ajax({ 
    url: "", 
    async: false, 
    success: function(resp) 
    {} 
}); 

게시하기 전에 데이터를로드해야합니다. 그러나 Sinethera가 말했듯이, 이것은 AJAX의 모든 목적을 이깁니다. 미리 내용을 가져올 수 있다면 예상되는 내용을 알 수 있습니다. 그런 다음 정적 목록으로 지정하지 않는 이유는 무엇입니까?

+1

노노 노노 노노 노. 프리 페치 데이터와 "비동기"를 끄는 데는 차이가 있습니다. 이렇게하면 "이 URL에서 회신하기 전까지는 아무 것도하지 마십시오."와 같이 아약스 요청을 차단하는 이벤트가 만들어집니다. "모든 것의 동결과 나는 왜 그런지 모르겠다. 'async : false'를 설정하는 이유는 거의 없습니다. 이것은 더 이상 비동기 JavaScript 및 XML 요청이 아닙니다. 이제는 SJAX입니다.) – Sinetheta

+0

하지만 이것이 구성 요소가로드되기 전에 데이터를 가져 오는 유일한 방법입니다. 나는 그것의 진짜 나쁜 일을 안다. 그래서 저는 AJAX의 목적을 완전히 상실한 것이라고 말했습니다. – mihsathe

+0

아니요, "데이터를 먼저 얻는 것"과 "데이터를 가져 오는 동안 브라우저를 종료하는 것"사이에는 차이가 있습니다. '.autocomplete()'를 일반적인 Ajax 요청에 대한 콜백에 넣는 것은 괜찮습니다 (무의미하지만 괜찮습니다). 비동기를 끄는 것은 결코 좋지 않습니다. – Sinetheta

1

Prefetch? 그게 "아약스가 아님"아닌가요? 페이지에 데이터를로드하고 정적 데이터 소스로 사용하기 만하면됩니다.

선택적으로 필드를 "집중"할 때 데이터를 가져옵니다. 이는 페이지로드시 데이터를 가져 오는 것과 합법적 인 동적 소스를 수행하는 것 사이의 유일한 절충안입니다.