2010-01-11 1 views
0

비동기가 아닌 YAHOO.util.Connect.asyncRequest 호출을 만들고 싶습니다. open(method, url, async)처럼 false가 비동기로 전달됩니다.비동기가 아닌 YUI asyncRequest 호출 만들기

Connect 클래스에서 "syncRequest"를 찾을 수 없습니다. YUI 2를 사용하면 가능합니까?

내가 대신 YUI없이 시도 : '개방'에 전달 될 때 거짓

function createRequestObject() { 
    var ro; 
    // Mozilla, Safari,... 
    if (window.XMLHttpRequest) { 
     ro = new XMLHttpRequest(); 
     if (ro.overrideMimeType) { 
      ro.overrideMimeType('text/xml'); 
      // See note below about this line 
     } 
     // IE 
    } else if (window.ActiveXObject) { 
     try { 
      ro = new ActiveXObject("Msxml2.XMLHTTP"); 
     } catch (e) { 
      try { 
       ro = new ActiveXObject("Microsoft.XMLHTTP"); 
      } catch (e) {} 
     } 
    } 
    if (!ro) { 
     alert('Giving up :(Cannot create an XMLHTTP instance'); 
     return false; 
    } 
    return ro; 
} 
function sndReq(param,server,handler) { 
    http = createRequestObject(); 
    http.open('GET', server+"?"+param, false); 
    http.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); 
    http.onreadystatechange = handler; 
    http.send(null); 
} 

그러나 파이어 폭스와 사파리 콜백 함수에서

이 (핸들러) '을 onreadystatechange'에 호출되지 않습니다? IE와 Opera에서는 괜찮습니다.

답변

1

JQuery를 사용하십시오. jQuery.ajax ({async : false})는 IE와 FF 모두에서 작동합니다.

1

YUI2는 동기 요청을 지원하지 않습니다. IRC의 개발자 중 한명에 따르면 결국 YUI3의 일부가 될 것입니다. 사용자 경험으로 인해 혼란을 겪기 때문에 그들은 그것을지지 할 엄청난 서두를 가지고 있지 않습니다.

2

YUI3은 "YUI io"에서 동기 요청을 지원하며 GitHub의 개발 마스터에서 사용할 수 있습니다. 구현 구문은 README 파일에 포함되어 있으며 공식적으로 3.1.0의 릴리스에 대해 설명됩니다. 이 향상된 기능은 yuilibrary.com에서 2528181로 설명되어 있습니다.

YUI 3를 사용할 수있는 위치에 있다면 io를 사용해보십시오.

-1

개인적으로 나는 결코 동기화 요청을하지 않을 것입니다. AJAX는 비동기 요청을위한 것입니다. 요청이 오래 걸리면 UI가 멈 춥니 다.

관련 문제