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函數是必要的

兩種方法都可以實現全局變量的存取,只是哪種更好不清楚
相關推薦
- ExtJs七(ExtJs Mvc創建ViewPort) 前言在4.1的時候,要先創建一個擴展于Ext.app.Application的類,然后用create創建它的實例來開始應用程序的。而在4.1.1,則可直接調用application方法開始執行應用程序,簡化了。調用application方法,其參數是一個配置對象,主要配置項有以下三個:name:用來…
- Hibernate Criterion 在查詢方法設計上能夠靈活的依據Criteria的特點來方便地進行查詢條件的組裝.Hibernate設計了CriteriaSpecification作為Criteria的父接口,以下提供了Criteria和DetachedCriteria.Criteria和DetachedCriteria的主要差別在于創建的形式不一樣,Criteria是在線的,所…