1

我想要更好地描述正在发生的事情,而不是典型的“正在加载...”或动画 gif。(有点像一些闪屏对应用程序所做的)。但是,浏览 Jquery 文档似乎没有办法让 XMLHttpRequest 状态发生变化。

我想做的是这样的

如果 case = 1 显示“开始”

if case = 2 显示“越来越近”

if case = 3 显示“我快到了”

if case = 4 显示内容

我是否忽略了某些东西,还是应该放弃 jquery 的 ajax 方法并编写自己的方法?

4

1 回答 1

0

您需要在某个时间间隔内轮询 Web 服务,然后返回似乎适合您的应用程序的任何内容(例如您提供的消息)并更新进度指示器。该过程分为两步:第一步是实际启动必须运行的操作,第二步是不断轮询服务器以查看操作是否完成。

但是,您必须以某种方式将当前操作状态存储在服务器上。我不知道你正在使用哪种技术,所以我只能告诉你使用你选择的框架提供的东西,但要确保进程状态设置在一个可以持久化的变量中(HTTP 是无状态的),例如在会话变量中。在正在运行的进程和轮询方法之间同步这个值可能会很棘手。

总体而言,当在客户端上执行处理时,此类启动屏幕更适用于桌面应用程序或 Web 应用程序。当您异步运行的方法驻留在服务器上时,我认为尝试更新进度不是一个好主意。当您加载资产(如图像或其他文件)时,这样的进度指示器会很好,您可以计算当前加载的项目/大小与总大小等等。无论处理操作是在服务端调用还是在客户端调用,它都必须是可数的......

如果您不想在您的 Web 应用程序中再出现一个枯燥的“正在加载...”指示器,您可以随机显示一些有趣的引号或数组中的其他文本。

最佳解决方案 - 尽量减少处理请求所需的时间。:)

于 2009-04-02T19:54:23.223 回答