Показать сообщение отдельно
  #1 (permalink)  
Старый 01.05.2011, 10:43
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

каменное кеширование?
возник вопрос, почему почти везде делают так :

function xlmObj(){
                                
    try  { 
                              
        return new XMLHttpRequest();
                               
    } catch (m){
                                  
        try {
                              
            return new ActiveXObject("Msxml2.XMLHTTP");
                           
        } catch (e) {
                          
            try {
                         
                return new ActiveXObject("Microsoft.XMLHTTP");
                           
                } catch (E) {
                              
                    return ;
                                  
                            }
                    }
                }
}


если можно сделать по-другому, не вычисляя каждый раз ЭТО :


(function(window){
 
  if( !window.XMLHttpRequest ){
    

          window.XMLHttpRequest =  (function(){    
             try {   
                      return new ActiveXObject("Msxml2.XMLHTTP");
                 } 
            catch ( e ) {
                
                try {
                    
                       return new ActiveXObject("Microsoft.XMLHTTP");
                    }
                    
                catch ( g ) { return new IFRAME_imitation(); }
                    
                        }       

    })()// func end.
          

  }

})(window)



а потом уже использовать XMLHttpRequest,как обычно. во всех браузерах

var a = XMLHttpRequest( ) ;

a.open('GET',url);

........



если это ифрейм-имитация, то во фрейме будет при open создаваться форма, при send отправляться. ну , это уже можно додумать.


и еще один вопрос.

в jQuery , можно посмотреть тут,например

по поиску // Fake xhr, в функции ajax, есть фейковый объект XMLHttpRequest

и метод аборт у него :

// Cancel the request
				abort: function( statusText ) {
					statusText = statusText || "abort";
					if ( transport ) {
						transport.abort( statusText );
					}
					done( 0, statusText );
					return this;
				}



обьясните пожалуйста,зачем создавать этот фейковый объект XMLHttpRequest.
Ответить с цитированием