Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript:网站在我的电脑上运行良好,但在旧电脑上它会挂起网站 函数ImageExist(url) { var-num; $.ajax({ url:url, 错误:函数() { num=0; }, 成功:函数() { num=1; } }); 返回num; } 函数ChangeColor(颜色,类型){ var计数=1; 而(ImageExist(“images/”+type+“/”+color+“/”+count+“.jpg”)!=0){ 计数++; } var str=“”; var cm=新数组(计数); 对于(变量i=1;i_Javascript - Fatal编程技术网

Javascript:网站在我的电脑上运行良好,但在旧电脑上它会挂起网站 函数ImageExist(url) { var-num; $.ajax({ url:url, 错误:函数() { num=0; }, 成功:函数() { num=1; } }); 返回num; } 函数ChangeColor(颜色,类型){ var计数=1; 而(ImageExist(“images/”+type+“/”+color+“/”+count+“.jpg”)!=0){ 计数++; } var str=“”; var cm=新数组(计数); 对于(变量i=1;i

Javascript:网站在我的电脑上运行良好,但在旧电脑上它会挂起网站 函数ImageExist(url) { var-num; $.ajax({ url:url, 错误:函数() { num=0; }, 成功:函数() { num=1; } }); 返回num; } 函数ChangeColor(颜色,类型){ var计数=1; 而(ImageExist(“images/”+type+“/”+color+“/”+count+“.jpg”)!=0){ 计数++; } var str=“”; var cm=新数组(计数); 对于(变量i=1;i,javascript,Javascript,这段代码是为了找出每个名为product and color的文件夹中有多少个图像。然后将它们输出到html页面。它在我的笔记本电脑上运行良好,但在大学网络上它挂起了网站 这可能与不担任管理员有关吗?问题在于,在同步while循环中存在一个while循环,其中包含异步Ajax调用,这要求浏览器锁定。没有理由进行Ajax调用以查看图像是否存在。以异步方式使用图像标记 代码不是100%满足您的需要,只是一个基本示例 function ImageExist(url) {

这段代码是为了找出每个名为product and color的文件夹中有多少个图像。然后将它们输出到html页面。它在我的笔记本电脑上运行良好,但在大学网络上它挂起了网站


这可能与不担任管理员有关吗?

问题在于,在同步while循环中存在一个while循环,其中包含异步Ajax调用,这要求浏览器锁定。没有理由进行Ajax调用以查看图像是否存在。以异步方式使用图像标记

代码不是100%满足您的需要,只是一个基本示例

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;
            });
            }

您在
while
语句中执行了大量ajax调用,因为
imageExist
函数是异步的,但是当您返回
num
变量时,变量总是
未定义的。因此,您的代码说,«当函数返回与0增量计数不同的值时,请重试。»


看看firefox上的javascript控制台,在
net
panel

下,我会尝试在那里放置一些
console.log()
s,看看它到底挂在哪里。这可能有很多原因,首先我想到的是浏览器的不同。
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);
   }
}