iT邦幫忙

DAY 17
9

用 HTML5 和 JavaScript 學習開發 Windows 8 Apps系列 第 16

Day17 [windows 8 app] 一直很不想面對的 default.js 檔案

其實在產生 window8 app 範本時,都會自動幫你帶一個 default.js,
通常我不太會去動它,因為如果有需要的話會另外開 js 在載入頁面。
到底這個default.js是幹什麼的呢,打開之後實在有點煩,還真的不知道他在做些什麼。
我簡單提一下我所知道的:

default.js 裡面有個 app.onactivated 的事件,主要是用來處理整個 app 的 activate,很白話,不過好像真的就是這樣。

(function () {
    "use strict";

    WinJS.Binding.optimizeBindingReferences = true;

    var app = WinJS.Application;
    var activation = Windows.ApplicationModel.Activation;

    app.onactivated = function (args) {
            //中間省略
            args.setPromise(WinJS.UI.processAll());
        }
    };

    //中間省略
    app.start();
})();

其實比較特別是 WinJS.UI.processAll( ) ,這個函數會去看 defaut.html有沒有使用 WinJS.UI 的元件,比方說你用了 GridView 或是 Rating 之類的,如果有的話就會啓用這些元件。

另外,如果你要替非 WinJS.UI 的元件做些事件監聽的事情,(比方說你自己有做一個button,那個button並沒有使用data-win-control這個屬性去指定他為 WinJS.UI 的元件),這一類的事件監聽,建議你寫在 WinJS.UI.processAll( ) 之後。

雖然假如一開始你是完全沒有使用到 WinJS.UI 的東西,但也不建議你把這些 app.onactivated 給刪掉,因為你很有可能有機會用到。

另外default.js裡面的code是用匿名函數給包住,並且是在strict嚴格模式之下(雖然我很少用 use strict),使用匿名函數是個不錯的習慣,避免全域變數受到污染。


上一篇
Day12 番外篇,想寫[F2E Star]企劃書...但沒寫完...
下一篇
Day18 簡單講閉包 closure
系列文
用 HTML5 和 JavaScript 學習開發 Windows 8 Apps30

2 則留言

0
SunAllen
iT邦高手 1 級 ‧ 2013-10-02 00:38:33

沙發XDXD還是不太了解...

yiying iT邦新手 1 級‧ 2013-10-02 00:39:10 檢舉

呵呵沒關係,其實我也覺得很難懂..... XDDDD 謝謝太陽大的支持><

我要留言

立即登入留言