【问题标题】:How to make background process using ajax or jquery in jsp如何在jsp中使用ajax或jquery制作后台进程
【发布时间】:2013-05-23 02:29:40
【问题描述】:

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

现在的事情是我正在加载图像以供以后使用,例如用于 poup 的东西。

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

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

任何建议都将不胜感激。

谢谢。

【问题讨论】:

  • 在浏览器中加载图片(大内容)需要 20 分钟,或者 Servlet 未优化,这是性能问题?

标签: java javascript ajax jsp servlets


【解决方案1】:

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

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

更新

如果您只需要在加载主页后加载一些图像,您可以使用一些javascript函数在页面加载时加载图像event on load,或者如果您在页面为@987654322时使用jquery @ 然后使用 jquery here 或仅使用普通 javascript here 异步加载图像

我希望这会有所帮助。

【讨论】:

  • 我已经在页面加载时发出了“请稍候”的消息,但是这个页面有时需要更多的时间来加载,我认为这只是由于 如果我删除它,则页面会在 2 分钟内加载。我只需要使用后台进程加载包含图像的 div,因为该图像未直接显示在页面上,但我已将其放在 Hover 弹出窗口中。
【解决方案2】:

我认为您可以使用 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/

【讨论】:

  • 从您的评论中,我认为您可以删除 或将其替换为 。并且在 $(document).ready(function(){ /*替换你的 img 标签或更新你的 img 标签的 src 属性 */ }); @Sweety
【解决方案3】:

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

【讨论】:

    猜你喜欢
    • 2018-07-23
    • 1970-01-01
    • 2014-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-13
    • 1970-01-01
    • 2013-08-09
    相关资源
    最近更新 更多