2010-03-24 17 views
6

Przepraszam, jeśli jest to pytanie "duh". Wygląda na to, że odpowiedź powinna być łatwa do uruchomienia, ale jeszcze jej nie znalazłem.W jaki sposób można pomijać zmienne klienckie w Coldfusion?

Pracuję nad dużą aplikacją Coldfusion, która przechowuje dużą liczbę danych sesji/użytkownika w zakresie klienta (tj. < cfset Client.UserName = "JoshuaC" >). Nie napisałem tej aplikacji i nie mam luksusu jej znaczącego refaktoryzowania.

Otrzymałem zadanie ustawienia zmiennych klienta na czas oczekiwania po 72 godzinach. Nie jestem do końca pewien, jak to zrobić. Gdybym napisał tę aplikację, zapisałbym zmienne w zakresie Sesja, a następnie zmieniłam atrybut sessiontimeout dla tagu CFAPPLICATION. Jednak nie jestem pewien, czy ten limit czasu wpływa na zmienne klienta, ani jaki jest ich poziom trwałości. Sposób, w jaki aplikacja działa teraz, zmienne klienta nigdy się nie kończą i tylko wyczyszczenie plików cookie użytkownika lub odwiedzenie strony wylogowania, która ustawia wszystkie zmienne aplikacji na poziomie klienta na "", spowoduje wyczyszczenie wartości.

Oczywiście, mógłbym stworzyć jakąś zmienną znacznika czasowego, taką jak Client.LastAccessDateTime, i umieścić coś w pliku Application.cfm, aby wyczyścić zmienne klienta, jeśli ta data jest większa niż 72 godziny przed Now(). Ale musi być lepsza droga, prawda?

Odpowiedz

4

zależności od tego, czy Twój używasz źródła danych lub rejestru jako Store Client trzeba ustawić „czystki danych dla klientów, które pozostają nieodwiedzonych przez 90 dni do 3 dni (= 72 godzin) na

ColdFusion Administrator = > Zmienne client => Zmienne Registry

lub

client =>NameOfDatabase Page.

Jeśli Zmienne klientów są przechowywane jako pliki cookie, a następnie ha ve, aby skorygować okres ważności, podczas ustawiania pliku cookie.

Przedział czasu czyszczenia na stronie Zmienne klienta określa tylko, jak często ColdFusion wykonuje operację czyszczenia w magazynach klientów (= wyszukuje zmienione zmienne klienta w celu ich usunięcia).

2

Przypuszczam, że szukasz ustawienia Purge Interval, które jest skonfigurowane w Administratorze CF na stronie Ustawienia serwera> Zmienne klienta. Domyślny interwał to 1 godzina 7 min.

EDYCJA: Ta wartość ustawienia nie jest dokładnie tym, czego potrzebujesz. Przykro mi, zobacz mój komentarz na temat oczyszczenia - myślę, że jest dokładniejszy.

+0

@Sergii - To interesujące ... to może być to, czego szukam. Ale jeśli ustawię przedział na 72 godziny, a zmienna zostanie ustawiona na 71. godzinę, czy zostanie wyczyszczona 1 godzinę później? Czy też okres czyszczenia "od ostatniego dostępu"? –

+0

Zobacz odpowiedź Andreasa, pierwszy akapit. Jeśli korzystasz z bazy danych lub rejestru do przechowywania zmiennych klienta, możesz skonfigurować własne ustawienie czyszczenia ("Usuń dane dla klientów, które nie są odwiedzane przez 3 dni" - przez 72 godziny, z prawej), co oznacza "Włącz tę opcję jeśli chcesz, aby ColdFusion okresowo usuwał dane klienta, które nie były dostępne przez określoną liczbę dni. " Pomyśl, że to odpowiada na twoje pytanie. Niestety, nie mogę stwierdzić na 100% pewności, ponieważ nie użyłem zakresu klienta zamiast sesji. – Sergii

Powiązane problemy