2013-03-25 65 views
0

我已經創建了以下JavaScript函數來加載車輛的圖像,或加載替代圖像,如果它不可用。問題是這個頁面是1kb,同時它只需要爲這個函數加載整個jquery庫85 + kb。所以我的問題是,是否有一些方法可以在不加載jQuery庫的情況下完成相同的操作?ajax請求標題沒有jquery

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

使用jQuery的CDN,所以你」你可能不需要再次下載jQuery – Musa 2013-03-25 20:05:49

+0

jQuery只有30kb壓縮(如果你沒有壓縮你的流量然後開始),正如@Musa所說,如果你使用CDN,如http://ajax.googleapis.com/ ajax/libs/jquery/1.9.1/jquery.min.js,你的用戶幾乎可以肯定已經緩存了。 – Dave 2013-03-25 20:16:33

+0

我把我的jQuery庫鏈接到你提到的CDN從我們的服務器上正確加載它。雖然它仍然比我想要的要大,但我認爲你是正確的客戶端可能已經緩存了,或者在第一次加載頁面之後。 – JustinCredible 2013-04-02 16:25:47

回答

0

是的,有一種方法 - 好老的var oRequest = new XMLHttpRequest();的方式! 不要忘記設置所有需要的回調,檢查響應狀態,一切都會好起來的。 要創建HEAD請求,只需將「HEAD」指定爲.open()方法的參數即可。

您還需要document.createElement()的結果添加到您的網頁(或者您可以使用.innerHTML屬性爲好。

而且,這樣http://www.tutorialspoint.com/ajax/what_is_xmlhttprequest.htm文檔可能會派上用場。

+0

非常感謝您的信息! – JustinCredible 2013-03-25 20:50:32