0

在我的应用程序中,有一个页面,用户可以在其中生成 Excel 报告。这一代可能会比较长(从10秒到5分钟)。目前,当用户单击Generate按钮时,会出现一个带有加载图标(等待弹出窗口)的jQuery 模式面板。

现在,我想提供 Excel 生成当前步骤的图形指示。例如,一旦用户点击了按钮,显示的模式面板将是:

+-------------------------------------+
|         ... Please wait ...         |
+-------------------------------------+
|  We are preparing your Excel file.  |
|                                     |
|  >> Finding unicorns in Database.   |
|  2. Reading "Database for dummies"  |
|  3. Downloading the Internet...     |
|  4. Write fake data in Excel file.  |
+-------------------------------------+

然后,几秒钟后,模态面板将如下所示:

+-------------------------------------+
|         ... Please wait ...         |
+-------------------------------------+
|  We are preparing your Excel file.  |
|                                     |
|  1. Finding unicorns in Database.   |
|  >> Reading "Database for dummies"  |
|  3. Downloading the Internet...     |
|  4. Write fake data in Excel file.  |
+-------------------------------------+

依此类推,直到 Excel 可供用户使用。

我的想法是通过 Ajax 请求定期轮询服务器。然后,服务器将返回一个 JSon 对象,其中包含步骤列表(使其有点通用)和处于活动状态的那个。然后,我将解析这个对象并显示/刷新步骤列表。

我在这里没有看到技术问题,因为 jQuery 提供了所有的元素来做到这一点。但也许已经有一个 jQuery 插件可以满足这种要求。你认识一个吗?

如果我必须开发它,您有什么建议(要避免的错误等)吗?

谢谢。

4

1 回答 1

0

你真的不需要插件,因为它非常简单。上周我做了一个类似的功能,您唯一需要做的就是在生成文件并从客户端向服务器发送连续请求以更新状态时,将要发送给客户端的数据保存在数据库中。您可以每秒发送一个请求,我只是等待从服务器获得响应,然后如果它没有完成,我会一次又一次地调用请求发送函数。

编辑:我会避免将生成状态消息存储在会话中,因为如果我没记错的话,会话在 http 请求期间被锁定,并且如果您还想在等待生成时发送其他请求,您将无法访问会议。

于 2012-06-26T08:04:54.877 回答