2011-06-06 113 views
0

我有一个网站在ASP.NET MVC3中使用Razor渲染视图。在这个站点中,我创建图表(System.Web.UI.DataVisualization.Charting.Chart),并将它们作为图像与控制器一起提供给我的视图。jQuery UI:加载图片时加载对话框

加载图表可能需要1到5秒的时间。因此,我希望显示一个加载模式对话框给用户一些反馈。

创建jQuery UI对话框非常简单,我听说过定时关闭的解决方案。然而,由于时间变化,时间延迟关闭对我来说不是一个合适的解决方案。

是否可以显示一个单个加载对话框,直到页面上的所有图像都被浏览器加载和渲染为止?我怎么能这样做?

谢谢! :)

回答

0

如果您有每个图像的独立URL,您可以通过jQuery加载,您可以挂载到加载事件中,并在完成后隐藏等待图像。这种方法适合你吗?如果是的话,我会编辑和添加代码。

+0

我对每个图表图像都有不同的URL。我在我的控制器中调用了一个HTTP.Get方法,该方法根据命名参数生成并返回适当的图表图像。例如:http:// localhost/GetImg?name = Foo。 – Alerty 2011-06-06 04:16:02

+0

虽然URL生成服务器端..所以我想它必须是动态JavaScript? – Alerty 2011-06-06 04:17:04

+0

检查这里的代码:http://stackoverflow.com/questions/6234148/jquery-re-establish-img-src-in-load-function你想要做的是显示每个等待图像,其次 - 钩负载您的图像事件(即您的报告)到一些onload方法。你定义的'onload'方法只是隐藏你的等待图像。你要把SO问题贴在最上面,而不是错误函数而是加载函数。这有意义吗? – 2011-06-06 05:00:26

1

你可以一个处理程序添加到Load Event

添加一个绝对定位的div在IMG(通过CSS),它会显示一个加载IMG。将一个加载事件处理程序添加到img标记中,该标记应在加载事件被触发时移除绝对定位的div。

+0

在我的情况下,它必须是相对的,因为我的布局是流畅的。 – Alerty 2011-06-06 04:12:27

+0

当然,使用相对......不会影响js – 2011-06-06 04:37:07

+0

这是一个很不错的主意......这是常见的做法吗? – 2011-06-06 04:47:03