Dorado 9 : 任务指示和通知(sample-center)

本示例演示了两种用于向用户显示消息的API:

  • dorado.util.TaskIndicator.showTaskIndicator
  • dorado.widget.NotifyTipManager.notify()

非阻塞式的任务指示器

非阻塞式的任务指示器效果如下:

非阻塞式的任务指示器的特征是始终显示在页面的右上角。

非阻塞式的指示器在任务执行的过程中还可以继续做页面操作。

非阻塞式的指示器用法比较简单,大致代码为:

dorado.util.TaskIndicator.showTaskIndicator("测试非阻塞任务指示器");

另外对与任务指示器,我们还需要记得去关闭它,如本例:

var taskId = dorado.util.TaskIndicator.showTaskIndicator("测试后台任务" + taskNo);
setTimeout(function() {
	dorado.util.TaskIndicator.hideTaskIndicator(taskId);
}, 3000);

上面的代码首先通过showTaskIndicator方法返回的任务指示器的taskId,并调用利用timeout,在3秒钟后调用hideTaskIndicator方法隐藏创建的任务只是器。

阻塞式的任务指示器

阻塞式的任务指示器效果如下:

与非阻塞式任务指示器不一样的是,在执行阻塞式的任务指示器的时候,指示信息始终在页面中居中显示,另外我们还可以注意到阻塞式的任务指示器执行的时候,页面无法继续操作,知道阻塞式的任务指示器任务执行完毕才可以。

其基本用法与非阻塞式的指示器的用法非常类似:

dorado.util.TaskIndicator.showTaskIndicator("测试主任务","main");

其中唯一的差别在于,多了一个"main"参数,在showTaskIndicator方法中通过这个参数判断是否需要阻塞效果。

与非阻塞任务指示器一样,我们还需要记得去关闭它,如本例:

var taskId = dorado.util.TaskIndicator.showTaskIndicator("测试后台任务", "main");
setTimeout(function() {
	dorado.util.TaskIndicator.hideTaskIndicator(taskId);
}, 3000);

上面的代码首先通过showTaskIndicator方法返回的任务指示器的taskId,并调用利用timeout,在3秒钟后调用hideTaskIndicator方法隐藏创建的任务只是器

普通的通知消息

下图为普通的通知消息:

普通的通知消息的实现非常简单,代码如下:

dorado.widget.NotifyTipManager.notify("通知信息");

只要调用notify方法即可,通知消息会自动的在屏幕的右下角显示。notify消息默认会自动关闭。

如果在瞬间多个消息执行,则显示效果如下:

当然notify方法也允许你对系统消息的提示框做更多的特性定制,如下的自定义的通知消息。

自定义的通知消息

下图为自定义的通知消息

自定义通知消息是指,我们可以通过notify方法对通知消息提示框做更多的特性设定,如本例通过一个JSON对象定制NotifyTip的特性:

function getMessage(num) {
		return "您有" + num + "条待处理的消息...";
	}


	self.set("disabled", true);


	var i = 1;
	var tip = dorado.widget.NotifyTipManager.notify({
		text : getMessage(i),
		caption : "<重要通知>",
		icon : "INFO",
		autoHide : false,
		listener : {
			onHide : {
				fn : function() {
					tip = null;
					self.set("disabled", false);
				}
			}
		}
	});

上述代码将

  • 提示信息通过text设定
  • caption修改为"重要通知"(默认为"系统通知")
  • 通过icon属性自定义提示信息的图标
  • autoHide设置为false,禁止通知消息自动关闭
  • 通知消息提示框关闭后按钮才变得可操作

关于notify更多的自定义方法请通过Client-API的dorado.widget.NotifyTipManager.notify查看。