Dojo中的通用加载图标

ces*_*egb 1 ajax dojo web

我正在为一个应用程序提供维护,该应用程序通过以下方式进

dojo.xhrPost() and  dojo.xhrGet()
Run Code Online (Sandbox Code Playgroud)

并且我想为系统上的所有调用添加一个通用的加载"icon + message"..我发现系统很难找到并且可维护性很低,无法将loadFunction调用添加到所有加载:all of all xhr

所以如果有一种方法可以为系统上的所有ajax调用添加一个监听器,那么我就会徘徊,所以每次调用都会显示加载...

我读到我可以用1.7中的方面做到这一点,但我正在研究的应用程序是使用1.6的Dojo版本

所以如果你知道一种方法来显示所有ajax调用的通用消息..

谢谢你的建议..

phu*_*ick 6

你可以做到这一点通过dojo/topic,即IO管道主题,因为道场1.4其中工程.

请参阅jsFiddle的工作示例:http://jsfiddle.net/phusick/cMHdt/

首先,您必须全局启用IO管道主题,ioPublish: true在其中一个中设置dojoConfig,data-dojo-configdjConfig(取决于您使用的).

然后dojo.subscribe()是特定主题,例如:

dojo.subscribe("/dojo/io/start", function(e) {
    dojo.style(throbberNode, "display", "block");
});

dojo.subscribe("/dojo/io/stop", function(e) {
    dojo.style(throbberNode, "display", "none");
});
Run Code Online (Sandbox Code Playgroud)

可用topics根据Dojo文档是:

  • /dojo/io/start在没有未完成的IO请求时发送,并且启动新的IO请求.此主题不传递任何参数.
  • /dojo/io/send每当启动新的IO请求时都会发送.它传递了dojo.Deferred与主题的请求.
  • /dojo/io/load每当IO请求成功加载时发送.它通过主题传递响应和dojo.Deferred请求.
  • /dojo/io/error每当IO请求出错时发送.它通过主题传递错误和dojo.Deferred请求.
  • /dojo/io/done每当IO请求完成时,通过加载或错误发送.它通过主题传递错误和dojo.Deferred请求.
  • /dojo/io/stop所有未完成的IO请求完成后发送.此主题不传递任何参数.