我正在显示 100 个记录列表以及来自 servlet 的图像和图像。
现在的事情是我正在加载图像以供以后使用,例如用于弹出内容。
那么有什么方法可以将这些图像作为后台进程加载,而不会中断页面加载。(目前仅由于图像 servlet 而加载整个页面需要 20 分钟)
使用 ajax 调用作为后台进程之类的任何方式或使用 java 的其他方式。
任何建议将不胜感激。
谢谢。
我正在显示 100 个记录列表以及来自 servlet 的图像和图像。
现在的事情是我正在加载图像以供以后使用,例如用于弹出内容。
那么有什么方法可以将这些图像作为后台进程加载,而不会中断页面加载。(目前仅由于图像 servlet 而加载整个页面需要 20 分钟)
使用 ajax 调用作为后台进程之类的任何方式或使用 java 的其他方式。
任何建议将不胜感激。
谢谢。
我认为您可以使用 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/
如果需要 20 分钟,我会亲自创建一个 servlet 来创建一个 html 页面 ex。myresult.html 如果尚未完成或请求已在处理中,我将返回“处理中,请稍候”或类似内容,完成后我将重定向/加载到新创建的 html。
如果您想按照相同的想法使用 javascript 来制作它,而不是返回消息,您可以返回 JSON 消息、Javascript 变量你有什么...并定期检查此消息。设置超时(检查消息,60000);
更新
如果您只需要在加载主页面后加载一些图像,您可以使用一些 javascript 函数在页面加载事件时加载图像,或者如果您在页面准备好时使用 jquery然后加载此处使用 jquery 异步图像或仅使用纯 javascript此处
我希望这有帮助。
您的 Servlet 应该只创建记录列表。稍后您应该使用 ajax 调用加载图像。