Autor | Zpráva | ||
---|---|---|---|
blazej44800 Profil |
#1 · Zasláno: 15. 6. 2012, 17:20:51
Ahojte
Potrebujem vedieť ako sa správa premenná $_SESSION ak sú otvrené viaceré skripty naraz. Povedzme je otvorený jeden skript long polling (na 30s.) a počas jeho beho sa zmení hodnota nejakej $_SESSION z iné skriptu. Zmení sa aj v tom skripte long polling alebo až po jeho znovuspustení? Vďaka |
||
Jan Tvrdík Profil |
blazej44800:
Sessions se standardně ukládají do souboru. Při volání session_start získá PHP exkluzivní zámek k tomu souboru. To znamená, že pokud dlouhotrvající skript na svém začátku zavolá session_start , tak všechny ostatní skripty (puštěné stejným uživatelem), které taky chtějí session_start zavolat budou čekat, až ten dlouhotrvající skript doběhne. Pokud chceš tomuto čekání předejít, tak dlouhotrvající skript musí zavolat session_write_close, čímž uvolní zámek ze souboru, kde má daný uživatel sessions uloženy. Pokud v tom dlouho trvajícím skriptu znovu zavoláš session_start , tak v $_SESSION budou aktualizované hodnoty. Jinými slovy se stejnou $_SESSION (patřící stejnému uživateli) nikdy nepracují dva skripty zároveň. Vždy pouze jeden a ostatní čekají až ten pracující pracovat přestane.
(Doufám, že se nemýlím. Znám to jen teoreticky, v praxi jsem to netestoval.) |
||
blazej44800 Profil |
#3 · Zasláno: 16. 6. 2012, 08:17:51
Ok, vďaka otestujem to :)
|
||
Časová prodleva: 12 let
|
0