的情況下,我在CF 9.運行我的應用程序ColdFusion應用程序變量我創建了一個CFC專心我的cookie處理,而不是散落有關的所有變量。很簡單。它有兩個屬性(名稱,值),並有5個方法(setCookie,deleteCookie,verifyCookie,clearAllCookies和init)。鎖定指向一個對象
因爲我想這個方法在整個應用程序可用,我把這個代碼在我的Application.cfc文件的onApplicationStart方法:
application.oCookie = createObject("com.mycookie").init();
當我需要設置任何代碼文件我一個cookie只是這樣稱呼它:
application.oCookie.name="testCookieName";
application.oCookie.value="testCookieValue";
application.oCookie.setCookie();
我的問題是:每次我這樣做時,我需要把這個代碼鎖嗎?如果兩個單獨的用戶在同一時刻訪問此代碼的頁面上,我最終是否會設置混合的Cookie值?
謝謝你的答案。我沒有意識到通過傳遞參數來調用,而不是修改屬性,然後調用該方法將作爲單個線程運行。這說得通。當我打電話時,它還具有減少所需行數的額外好處! –
是的,當你做'oCookie.X = Y',這是一樣的'com.mycookie'類設置'this.X'。這個CFC實例的本地範圍和變量範圍是本地的。如果只有一個實例,它們將被共享。因此,你只應該依靠'arguments'和'local'作爲輸入範圍,並且只有'variables'範圍內的常量。 「這個範圍實際上只是爲了公共職能,而不是屬性。 – Henry