我见过的大多数 MSDN WinJS 应用示例都WinJS.UI.processAll()
在应用activated
事件发生后调用。我还看到了一些WinJS.UI.processAll()
在事件发生后调用的非 MSDN 教程DOMContentLoaded
。
是否有任何实际理由使用一种方法而不是另一种方法?
这是一个时间问题;我个人在 DOMContentLoaded 上调用它:
WinJS.Utilities.ready().done(function() {
WinJS.UI.processAll();
});
主要原因之一是您可以将 Promise 返回给激活处理程序(setPromise
您在模板中看到的调用),以便启动屏幕在WinJS.UI.processAll
完成之前保持更长时间。这可以更好地从初始屏幕过渡到完整的内容,而不会看到部分构建的 UI。
但是,如果您的 UI 会根据激活类型发生变化,您可能希望将其延迟到您已经构建了 DOM 之前。由于您需要激活类型来产生这些差异,因此您需要在引发激活事件后调用它。