Asp.net setTimeout上的图像加载问题

Asp.net setTimeout上的图像加载问题,asp.net,javascript,asp.net-ajax,jquery,Asp.net,Javascript,Asp.net Ajax,Jquery,我有一个问题,我似乎找不到解决的办法 问题是,我通过ajax调用加载图像和一些文本,然后在一段时间后,我尝试再次调用ajax函数以获得新的图像和文本集。然而,我的问题是图像没有及时加载(文本加载一切正常),它们停止加载,然后调用ajax 有办法解决这个问题吗 我真的很感激有人能帮我 编辑:似乎设置超时(“,30000”);在firefox和IE上以不同的速度工作。有没有办法设置一分钟,我尝试将其设置为60000,但在调用ajax之前的时间流逝方面得到了相同的结果 这是我的密码: HTML 我不确

我有一个问题,我似乎找不到解决的办法

问题是,我通过ajax调用加载图像和一些文本,然后在一段时间后,我尝试再次调用ajax函数以获得新的图像和文本集。然而,我的问题是图像没有及时加载(文本加载一切正常),它们停止加载,然后调用ajax

有办法解决这个问题吗

我真的很感激有人能帮我

编辑:似乎设置超时(“,30000”);在firefox和IE上以不同的速度工作。有没有办法设置一分钟,我尝试将其设置为60000,但在调用ajax之前的时间流逝方面得到了相同的结果

这是我的密码:

HTML


我不确定您想做什么——看起来您希望setTimeout是同步的(例如,阻止js执行)

你确定你不想要吗

 function getPortfolio() {
            $.ajax({
                type: "POST",
                url: "Portfolio.aspx/GetImages",
                data: "{}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function(msg) {
                    onCallBack(msg);
                }
            });
        }


        function onCallBack(msg) {
            var result = msg.d;
            if (result != null) {
                var portfolio_div = $("div[id*='portfolio']");

                $(portfolio_div).css({ 'display': 'block' });

                var imgs = $(portfolio_div).find("img");

                $("#img_before").attr({ src: "images/" + result.img_before.toString() });
                $("#img_after").attr({ src: "images/" + result.img_after.toString() });

                var txts = $(portfolio_div).find("span");

                $(txts[0]).text(result.txt_before);
                $(txts[1]).text(result.txt_after);

                setTimeout("", 30000);
                getPortfolio();
            }
            else {
                $(portfolio_div).css({ 'display': 'none' });
            }
        }
如果您正在等待加载完成,您真的应该使用image.onload…

应该是这样的

setTimeout('getPortfolio()',…)

而不是

setTimeout(getPortfolio(),…)

若您的代码与上面的相同,那个么getPortfolio()方法将只被调用一次(不是在每个间隔中)。启动settimeout时会立即调用它。

您关于$(“#img_after”)的建议。load(function()确实有帮助。但是settimeout(getPortfolio,…)对我不起作用(在我刚开始的时候)。
 function getPortfolio() {
            $.ajax({
                type: "POST",
                url: "Portfolio.aspx/GetImages",
                data: "{}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function(msg) {
                    onCallBack(msg);
                }
            });
        }


        function onCallBack(msg) {
            var result = msg.d;
            if (result != null) {
                var portfolio_div = $("div[id*='portfolio']");

                $(portfolio_div).css({ 'display': 'block' });

                var imgs = $(portfolio_div).find("img");

                $("#img_before").attr({ src: "images/" + result.img_before.toString() });
                $("#img_after").attr({ src: "images/" + result.img_after.toString() });

                var txts = $(portfolio_div).find("span");

                $(txts[0]).text(result.txt_before);
                $(txts[1]).text(result.txt_after);

                setTimeout("", 30000);
                getPortfolio();
            }
            else {
                $(portfolio_div).css({ 'display': 'none' });
            }
        }
setTimeout(getPortfolio, ...)