• <menu id="oqooq"><table id="oqooq"></table></menu>
  • <bdo id="oqooq"><noscript id="oqooq"></noscript></bdo>

    ExtJS中的全局變量的保存和使用

    小編:管理員 469閱讀 2022.09.07

    前陣子研究ExtJS,對于如何在Sencha Architect軟件中使用全局變量傷透了腦筋,F在我一共發現了兩種:

    第一種:使用“window.全局變量”形式

    window 對象總是存在的,你可理解其為一個瀏覽器窗口對象。它包含了其它所有的對象如document 和所有的全局變量。

    假設有全局變量seq,那么賦值和取值操作如下:

    window.seq=13; //賦值

    var temp=window.seq; //取值

    第二種:使用document對象中的cookie屬性

    在客戶端 JavaScript 中,Window 對象是全局對象,所有的表達式都在當前的環境中計算。也就是說,要引用當前窗口根本不需要特殊的語法,可以把那個窗口的屬性作為全局變量來使用。例如,可以只寫 document,而不必寫 window.document

    document里面有一個對象屬性cookie,可以用來保存用戶儲存在本地終端上的數據。

    先上代碼,然后解釋:

    var UserId = "";
            UserName = "";
            document.cookie="user=123";                    		//賦值
            var vcookie = document.cookie;
            var arrcookie = new Array();                                //這句記為A
            arrcookie = vcookie.split(";");
            for (var i = 0; i < arrcookie.length; i++) {
                var arr_per = new Array();
                arr_per = arrcookie[i].split("=");	                //arr_per[0]存的是等號左邊的值,arr_per[1]存的是等號右邊的值
                if (arr_per[0].replace(" ","") == "user") {
                    UserId = arr_per[1];
                }
                else if(arr_per[0].replace(" ","") == "name")	//replace函數可以去除name字符串前后的空格
                {
                    UserName = decodeURI(arr_per[1]);		//decodeURI() 函數可對 encodeURI() 函數編碼過的 URI 進行解碼。
                }
                if(UserId !== "" && UserName !== "")
                {
                    break;
                }
            }
    復制

    下圖是“百度一下”首頁中自帶的cookie值,看到格式就明白了為什么要?split(";") 和?split("=")

    執行A句以后

    由下圖可見replace函數是必要的

    兩種方法都可以實現全局變量的存取,只是哪種更好不清楚

    關聯標簽:
    黄色一片
  • <menu id="oqooq"><table id="oqooq"></table></menu>
  • <bdo id="oqooq"><noscript id="oqooq"></noscript></bdo>