Skip to content

Latest commit

 

History

History
74 lines (66 loc) · 2.6 KB

javascript-global-constants.textile

File metadata and controls

74 lines (66 loc) · 2.6 KB

JavaScript Global Constant

JavaScript 的全域變數是邪惡的,因為很容易被覆蓋或影響別人,所以我們應該盡量避免使用。
但有時候仍需 在所有頁面共用某些值 (也就是 Constant):例如 Host Name 或 Site Name、便於維護或快速切換。因此若你真的有這樣 Constant 的需求,請統一歸納在 window.MIIICASA 之下。

Constant File

  • 會影響到所有 miiiCasa 網頁的 Constant 設定檔:

    constant.js
  • 我們都有在 yui.js 後指定 Include 此 constant.js,若你有建立新的頁面,也要記得 Include:



  • 同樣 Minify 的 groupsConfig.php 也需要加入此檔案(已加入):
    
        "js"  => array(
            "yui.js",
            "//constant.js",
    

Usage

  • 若此 JavaScript 需要用到,請統一宣告 CONST:
    
    var CONST = window.MIIICASA.CONST;
    
    • 避免直接使用,例如:
      
      Y.io(window.MIIICASA.CONST.API_URL + "ws/getData?r=1"); // 不要這樣用喔,統一集中給 CONST。
      
  • CONST 已經被用掉了、你可以這樣做合併:
    
    CONST = Y.merge(window.MIIICASA.CONST, CONST); // 後者會蓋掉前者
    

Source Code

constant.js 的內容,僅供參考(可能已經變動了):


/*global window */
/**
 * This is miiiCasa globally used constants.
 * Every pages in miiiCasa should have this.
 */
(function () {
    var CONST = {
        API_URL                 : "http://api.miiicasa.com/",
        API_PRURL               : "//api.miiicasa.com/",
        APPS_URL                : "http://apps.miiicasa.com/",
        CMS_STATIC_URL          : "http://f.mimgs.com/cms/",
        CMS_STATIC_PRURL        : "//f.mimgs.com/cms/",
        CLIENT_TIMEOUT          : 12000,
        HELP_URL                : "http://help.miiicasa.com/",
        SETUP_URL               : "http://setup.miiicasa.com/",
        SHORT_URL               : "http://miiicasa.com/s/",
        SITE_NAME               : "miiiCasa.com",
        STATIC_URL              : "http://a.mimgs.com/",
        STATIC_PRURL            : "//a.mimgs.com/",
        WWW_PRURL               : "//www.miiicasa.com/",
        WWW_URL                 : "http://www.miiicasa.com/"
    };
    if (!window.MIIICASA) {
        window.MIIICASA = {
            CONST: CONST
        };
    } else {
        window.MIIICASA.CONST = CONST;
    }
}());