相关疑难解决方法(0)

如何从异步调用返回响应?

我有一个foo发出Ajax请求的函数.我怎样才能从中回复foo

我尝试从success回调中返回值,并将响应分配给函数内部的局部变量并返回该变量,但这些方法都没有实际返回响应.

function foo() {
    var result;

    $.ajax({
        url: '...',
        success: function(response) {
            result = response;
            // return response; // <- I tried that one as well
        }
    });

    return result;
}

var result = foo(); // It always ends up being `undefined`.
Run Code Online (Sandbox Code Playgroud)

javascript ajax jquery asynchronous xmlhttprequest

5208
推荐指数
38
解决办法
134万
查看次数

等待图像加载Javascript

我正在进行Ajax调用,它会返回一些信息,包括图像路径.我在HTML中准备了所有这些信息,这些信息将显示为一种弹出窗口.我只是将popup div的可见性从隐藏切换为可见.

要设置弹出窗口div的位置,我必须根据图像的高度进行计算.因此,在设置位置和将可见性切换为可见之前,我必须等待图像加载以了解其尺寸.

我尝试了递归,setTimeout,完成img属性的技巧,而循环...没有成功.

那么,我该怎么做呢.也许我应该在Ajax调用中返回维度.

javascript load image wait

55
推荐指数
4
解决办法
8万
查看次数

等待图像加载,然后执行所有其他代码

好吧,我对此失去了理智.我确实在这里阅读了SO和谷歌,我甚至有预装置设置(在这里找到了SO),但我找到的插件/代码都没有帮助我.

我想要做的是:等到所有图像都预先加载,然后才执行所有其他javascript代码.就我而言,它可以(但不是必须)有一个"加载......"的消息.

事实上,我在身体背景中有一个非常大的图像和另外两个也更大的图像,所以我想预加载它们,这样它们就会立即显示,并且不会有那种难看的"加载"图像效果.

这就是我现在使用的,但它并不好:

$(document).ready(function()
{    
     preloadImages();
     ...some other code...

    function preloadImages(){
         imagePreloader([
            'images/1.png',
            'images/2.jpg',
            'images/3.png',                
         ]);
     } 

     function imagePreloader(arrayOfImages) {
         $(arrayOfImages).each(function(){
             (new Image()).src = this;
         });
     }   
}
Run Code Online (Sandbox Code Playgroud)

我不知道,也许我应该在.ready()之外的某个地方调用这个预加载器?或者......那样,请帮忙......

顺便说一句,是的,我也读过这篇文章,我不知道为什么,但.ready()对我来说更快:(

编辑:
好的,所以最后我得到了这个工作.我的问题?我把等待的div设置错了.这是我现在的代码:我有加载div,我在上面显示所有图像,然后当所有图像加载时(使用$(window).load(function(){...});如我所建议,隐藏该div.

<div id="loading">
    <div id="waiting">
        <img class="loadingGif" src="images/loading.gif">            
    </div>
</div>

#loading
{
   background-size: 100%;
   background-color:#000;
   width: 100%;
   height: 100%;
   margin: 0px;
   padding: 0px;
   z-index:999;
}  

#waiting
{
   margin-left: auto;
   margin-right: auto;    
   position:absolute;
   top: 39%;
   left: 27.81%;
   width: 45%;
   height: 150px;    
   background-color: #FFF;
   border: 12px solid #FF771C; …
Run Code Online (Sandbox Code Playgroud)

jquery image-preloader preload

9
推荐指数
2
解决办法
1万
查看次数