2013-04-30 109 views
0
function ImageExist(url) 
      { 
       var num; 
       $.ajax({ 
       url:url, 
       error: function() 
       { 
        num = 0; 
       }, 
       success: function() 
       { 
        num = 1; 
       } 
      }); 
      return num; 
      } 

      function ChangeColor(color, type){ 
      var count = 1; 
     while(ImageExist("images/"+type+"/"+color+"/"+count+".jpg") != 0){ 
      count++; 
     } 
      var str = ""; 
      var cm = new Array(count); 
      for(var i = 1; i < count; i++){ 
       cm[i] = "<img src=\"images/"+type+"/"+color+"/"+i+".jpg\" onclick=\"ChangeImg('"+type+"','"+color+"','"+i+"')\">"; 
       str = str+cm[i]; 
      } 
      document.getElementById("prodPhoto").innerHTML = cm[1]; 
      document.getElementById("prodPhotos").innerHTML = str; 


      } 

      function ChangeImg(type, color, img){ 
       var light = "<a href=\"images/"+type+"/"+color+"/"+img+".jpg\" rel=\"lightbox[sofa]\" title=\"Comfort M\"/>"; 
       document.getElementById("prodPhoto").innerHTML = light+"<img src=\"images/"+type+"/"+color+"/"+img+".jpg\">"+"</a>"; 
      } 
      function preload(arrayOfImages) { 
      $(arrayOfImages).each(function(){ 
      (new Image()).src = this; 
      // Alternatively you could use: 
      // (new Image()).src = this; 
      }); 
      } 

這段代碼應該找出每個文件夾有多少圖片,稱爲產品和顏色。然後將它們輸出到html頁面。它可以在我的筆記本電腦上正常工作,但在大學網絡上它會掛起網站。Javascript:網站在我的電腦上運行良好,但在舊電腦上它掛起了網站

這可能與不是管理員有關嗎?

+0

我會嘗試丟棄一些'的console.log()'在裏面,看到哪兒它掛。這可能是由於多種原因,首先是在我腦海中是在瀏覽器中的差異。 – Shaded 2013-04-30 13:37:50

回答

0

的問題是你有這樣的事實與異步的Ajax while循環在同步調用while循環,這是要求瀏覽器鎖定。沒有理由進行Ajax調用以查看圖像是否存在。以異步方式使用圖像標記。

該代碼不是100%滿足您的需求,只是一個基本的例子。

function checkImage(url, good, bad) { 
    var img = new Image(); 
    img.onload = good; 
    img.onerror = bad; 
    img.src = url; 
} 

function findImgs() { 
    var currentImg = -1; 
    function next(){ 
     currentImg++ 
     checkImage("foo" + currentImg + "jpg", next, done); 
    } 
    function done() { 
     currentImg--; 
     alert("last Good Count was " + currentImg); 
    } 
} 
0

你執行你的while語句中的Ajax調用了大量的,因爲你的imageExist功能是異步的,但是當你回到你的num變量始終是undefined。所以,你的代碼說,«而函數返回的東西比0增量次數不同,然後再試一次。»

看看在Firefox的JavaScript控制檯,下net面板

相關問題