2013-03-25 2 views
0

차량의 이미지를로드하거나 사용할 수없는 경우 대체 이미지를로드하려면 다음 JavaScript 함수를 만들었습니다. 문제는이 페이지가 1kb 인 반면이 함수의 경우 85 + kb로 전체 jquery 라이브러리를로드해야한다는 것입니다. 그래서 내 질문에, jQuery 라이브러리를로드하지 않고 동일한 작업을 수행 할 수있는 방법이 있습니까?jquery가없는 ajax 요청 헤더

function GetImages() { 
var Query = location.search; 
//If query exists 
if ((Query != "") && (Query != "?")){ 
var chunks = Query.split("="); 
//If passed the right parameter 
if (chunks[0] == "?unit") { 
    var Unit = chunks[1]; 
    for (var i=1; i<11; i++) { 
     var unitimageURL = "/pics/"+Unit+"-"+i+".png"; 
     $.ajax({ 
      type: 'HEAD', 
      url: unitimageURL, 
      async: false, 

      success: function() { 
       $('.pictures').append("<img src="+unitimageURL+" width=150 height=90 alt='Unit "+Unit+" Picture "+i+"'>&nbsp;"); 
       if ((i == 4) || (i ==8)) { 
       $('.pictures').append("<br>"); 
       } 

      }, 
      error: function() { 

       $('.pictures').append("<img src=nopic2.png width=150 height=90 alt='Unit "+Unit+" Picture "+i+"'>&nbsp;"); 
       if ((i == 4) || (i ==8)) { 
       $('.pictures').append("<br>"); 
       } 
      } 
     }); 
    } 

} 
} 
else { 
alert("No query"); 
} 
} 
+0

사용할 수 있습니다 페이지에 결과를 추가 할 document.createElement()가 필요합니다

jQuery를 다시 다운로드 할 필요가 없습니다. – Musa

+0

jQuery는 30kb 만 압축됩니다 (트래픽을 압축하지 않으면 시작). @Musa는 http://ajax.googleapis.com/와 같은 CDN을 사용하는 경우 ajax/libs/jquery/1.9.1/jquery.min.js를 사용하면 사용자가 거의 이미 캐시했을 것입니다. – Dave

+0

내가 언급 한 CDN에 jQuery 라이브러리를 연결했습니다. 우리 서버에서 바로로드 할 수 있습니다. 그것은 여전히 ​​내가 생각하는 것보다 더 큰 덩어리이지만, 아마도 당신이 옳은 클라이언트라고 생각하면 아마도 캐싱을했거나 어쨌든 첫 번째 페이지를로드 한 후에야 겠지요. – JustinCredible

답변

0

네, 좋은 방법입니다 - 좋은 옛날 var oRequest = new XMLHttpRequest();! 필요한 모든 콜백을 설정하고 응답 상태를 확인하는 것을 잊지 마세요. 모든 것이 잘됩니다. HEAD 요청을 만들려면 .open() 메서드의 매개 변수로 "HEAD"를 지정하면됩니다. 또한 (또는 '당신 있도록 jQuery를 CDN을.

또한

http://www.tutorialspoint.com/ajax/what_is_xmlhttprequest.htm 같은 문서는 유용 할 수있다.뿐만 아니라 .innerHTML 속성을 사용

+0

정보를 제공해 주셔서 감사합니다. – JustinCredible