0

我正在显示 100 个记录列表以及来自 servlet 的图像和图像。

现在的事情是我正在加载图像以供以后使用,例如用于弹出内容。

那么有什么方法可以将这些图像作为后台进程加载,而不会中断页面​​加载。(目前仅由于图像 servlet 而加载整个页面需要 20 分钟)

使用 ajax 调用作为后台进程之类的任何方式或使用 java 的其他方式。

任何建议将不胜感激。

谢谢。

4

3 回答 3

0

我认为您可以使用 javascript 学习异步编码。例如,

f1(); // We assume f1() will take a long time and it will block page loading.  
f2(); // And f2() must be execute after f1()
// Other code here will be blocked by f1()

我们可以像这样简单地使用 setTimeout() 异步执行 f1() 。

function f1(callback){
setTimeout(function () {
    // Here is the work will do in f1()
    // You can move upper f1() code to here
    callback();
}, 20 * 60 * 1000);
}

f1(f2); 
// Other code here without being blocked by f1()

更多异步编码技巧可以在这里找到:http ://sporto.github.io/blog/2012/12/09/callbacks-listeners-promises/

于 2013-05-28T08:20:07.643 回答
0

如果需要 20 分钟,我会亲自创建一个 servlet 来创建一个 html 页面 ex。myresult.html 如果尚未完成或请求已在处理中,我将返回“处理中,请稍候”或类似内容,完成后我将重定向/加载到新创建的 html。

如果您想按照相同的想法使用 javascript 来制作它,而不是返回消息,您可以返回 JSON 消息、Javascript 变量你有什么...并定期检查此消息。设置超时(检查消息,60000);

更新

如果您只需要在加载主页面后加载一些图像,您可以使用一些 javascript 函数在页面加载事件时加载图像,或者如果您在页面准备好时使用 jquery然后加载此处使用 jquery 异步图像或仅使用纯 javascript此处

我希望这有帮助。

于 2013-05-28T08:01:20.443 回答
0

您的 Servlet 应该只创建记录列表。稍后您应该使用 ajax 调用加载图像。

于 2013-05-29T15:19:58.653 回答