Javascript 预加载图像会超出最大调用堆栈大小,但仅在android上

Javascript 预加载图像会超出最大调用堆栈大小,但仅在android上,javascript,android,html,mobile-application,preloading,Javascript,Android,Html,Mobile Application,Preloading,我有一个html5应用程序,它在启动时加载一些数据,在加载完所有数据后,用户可以浏览这些数据。与每个数据对象关联的是一个图像,一个png文件。 这将在带宽有限的移动设备上运行良好。 当用户浏览数据时,会显示图像,用户体验是图像的显示会延迟,因为从服务器加载这些图像需要一些时间 因此,我想预加载图像,以便在用户浏览数据时立即显示它们。因此,我有一个遍历所有数据的循环,并对每个图像执行以下代码: preloadImage: function(url) { if(url

我有一个html5应用程序,它在启动时加载一些数据,在加载完所有数据后,用户可以浏览这些数据。与每个数据对象关联的是一个图像,一个png文件。 这将在带宽有限的移动设备上运行良好。 当用户浏览数据时,会显示图像,用户体验是图像的显示会延迟,因为从服务器加载这些图像需要一些时间

因此,我想预加载图像,以便在用户浏览数据时立即显示它们。因此,我有一个遍历所有数据的循环,并对每个图像执行以下代码:

    preloadImage: function(url)
    {
        if(url)
        {
            // preload image
            if (document.images) {
                var img1 = new Image();
                img1.src = url;
            }
        }
    }
这是一种相当直接的方法

我有几百张图片要加载。这在大多数情况下都很有效

问题

当我在装有安卓4.1.2的三星Galaxy SIII上测试时,我得到

"RangeError: Maximum call stack size exceeded". 
我打了大约20-30个电话才收到这个。 我的猜测是,Android html/javascript引擎在一次挂起多少异步调用方面存在某种限制

我在个人电脑(IE9、Chrome、Firefox)和任何苹果设备上都没有这个问题


此问题的任何启示、提示或解决方案?

最大调用堆栈通常是由于函数调用堆栈变得太大,例如在递归调用的情况下。你到底是从哪里得到这个错误的?我确信触发这个错误的不是递归调用。该错误发生在Preload Images函数中。我会做更多的测试,看看它到底是哪一行,并相应地更新我的帖子。看起来错误就在那里的某个深处。