2

我见过的大多数 MSDN WinJS 应用示例都WinJS.UI.processAll()在应用activated事件发生后调用。我还看到了一些WinJS.UI.processAll()在事件发生后调用的非 MSDN 教程DOMContentLoaded

是否有任何实际理由使用一种方法而不是另一种方法?

4

1 回答 1

4

这是一个时间问题;我个人在 DOMContentLoaded 上调用它:

WinJS.Utilities.ready().done(function() {
    WinJS.UI.processAll();
});

主要原因之一是您可以将 Promise 返回给激活处理程序(setPromise您在模板中看到的调用),以便启动屏幕在WinJS.UI.processAll完成之前保持更长时间。这可以更好地从初始屏幕过渡到完整的内容,而不会看到部分构建的 UI。

但是,如果您的 UI 会根据激活类型发生变化,您可能希望将其延迟到您已经构建了 DOM 之前。由于您需要激活类型来产生这些差异,因此您需要在引发激活事件后调用它。

于 2012-11-30T19:49:58.197 回答