Դիտել ողջ տարբերակը : На сайте - իրականացում
Ողջույն
Մի գուցե արդեն ինչ-որ մեկը առնչվել է այս խնդրին, կամ ունի պատրաստ լուծումներ այս հարցի շուրջ, կխնդրեի այս թեմայի շրջանակներում քննարկել այն:
Խոսքը նրա մասին է թե ինչպես իրականցնել սայտում տվյալ պահին գտնվող օգտագործողների առկայության փաստը, ինչպես դա արված է oddoklassniki.ru - ում:
Նման մի մոտեցում մտքովս անցնում է, բայց մինչև վերջ չեմ կարողանում իրականցնել.
օրինակ
Յուրաքանչյուր User-ի համար կառուցում ենք ևս մի սյուն բազայում, մուտք լինելու դեպքում, այդ դաշտում գրվում է որևե տվյալ (օր. session id), դրանով իսկ կիմանաք, որ տվյալ օգտագործողը սայտում է, Log Out - ի դեպքում այդ դաշտի տվյալը կմաքրենք և աըդպիսով կիմանանք, որ օգտագրծողը դուրս է եկել, իսկ ինչպես վարվել, երբ օգտագործողը առանց Log Out - լինլու փակի Browser-ը ??? :think
Ողջույն
Մի գուցե արդեն ինչ-որ մեկը առնչվել է այս խնդրին, կամ ունի պատրաստ լուծումներ այս հարցի շուրջ, կխնդրեի այս թեմայի շրջանակներում քննարկել այն:
Խոսքը նրա մասին է թե ինչպես իրականցնել սայտում տվյալ պահին գտնվող օգտագործողների առկայության փաստը, ինչպես դա արված է oddoklassniki.ru - ում:
Նման մի մոտեցում մտքովս անցնում է, բայց մինչև վերջ չեմ կարողանում իրականցնել.
օրինակ
Յուրաքանչյուր User-ի համար կառուցում ենք ևս մի սյուն բազայում, մուտք լինելու դեպքում, այդ դաշտում գրվում է որևե տվյալ (օր. session id), դրանով իսկ կիմանաք, որ տվյալ օգտագործողը սայտում է, Log Out - ի դեպքում այդ դաշտի տվյալը կմաքրենք և աըդպիսով կիմանանք, որ օգտագրծողը դուրս է եկել, իսկ ինչպես վարվել, երբ օգտագործողը առանց Log Out - լինլու փակի Browser-ը ??? :think
բրաուզերը փակելով սեսյան չի ավարտվում ?
javaharut
20.09.2010, 22:51
Վերջին update-ով հավանաբար կարող ես որոշել թե սայթում է թե ոչ: ասենք եթե 5 րոպեից չթարմացնի օգտվողը կայքը, ապա բազայում կփոխի offline:
բրաուզերը փակելով սեսյան չի ավարտվում ?
ավարտվում ա, բաjց ես վոնց իմանամ դրա մասին???
---------- Ավելացվել է՝ 23:20 ---------- Սկզբնական գրառումը՝ 23:19 ----------
Վերջին update-ով հավանաբար կարող ես որոշել թե սայթում է թե ոչ: ասենք եթե 5 րոպեից չթարմացնի օգտվողը կայքը, ապա բազայում կփոխի offline:
Իսկ ավելի կոնկրետ ???
Իսկ ավելի կոնկրետ ???
DB-ում սարքել նոր ֆիլդ՝ last_update_time, իսկ ցույց տալու պահին օնլայն դաշտում ցույց տալ այն ընկերներին որոնց time() - last_update_time < 10*60*60(10 րոպե)
DB-ում սարքել նոր ֆիլդ՝ last_update_time, իսկ ցույց տալու պահին օնլայն դաշտում ցույց տալ այն ընկերներին որոնց time() - last_update_time < 10*60*60(10 րոպե)
իսկ ինչ պիտի պահեմ last_update_time դաշտում?
մի քիչ ավելի մանրամասն եթե կարելի ա :fool
last_update_time դաշտում պիտի պահվի համապատասխան յուզերի վերջին անգամ սերվերին դիմելու ժամը
id | user_name | friends_ids | last_update_time
1 | user1 | 2, 3 | 458654513
2 | user2 | 1, 3 | 458622132
3 | user3 | 1, 2 | 458654513
հիմա user1-i online ընկերները ցույց տալու համար բազայում ման ենք գալիս բոլոր էն ադնամները, որոնց id-ները կան user1-ի friends_ids դաշտում և {ներկա պահի ժամից - last_update_time <10*60*60}
Հ.Գ. գրածս հավանաբար ամենաօպտիմալ եղանակը չի, քանի որ էս դեպքում բոլոր տվյալները պահվում են մեկ աղյուսակի մեջ
last_update_time դաշտում պիտի պահվի համապատասխան յուզերի վերջին անգամ սերվերին դիմելու ժամը
id | user_name | friends_ids | last_update_time
1 | user1 | 2, 3 | 458654513
2 | user2 | 1, 3 | 458622132
3 | user3 | 1, 2 | 458654513
հիմա user1-i online ընկերները ցույց տալու համար բազայում ման ենք գալիս բոլոր էն ադնամները, որոնց id-ները կան user1-ի friends_ids դաշտում և {ներկա պահի ժամից - last_update_time <10*60*60}
Հ.Գ. գրածս հավանաբար ամենաօպտիմալ եղանակը չի, քանի որ էս դեպքում բոլոր տվյալները պահվում են մեկ աղյուսակի մեջ
Իսկ եթե օգտագործողը 10րոպե սայտում որևէ գործողություն չանի, բայց սայտում մնա, ինքը այլևս չի համարվի на сайте ?, բայց իրականում ինքը սայտում ա
Իսկ եթե օգտագործողը 10րոպե սայտում որևէ գործողություն չանի, բայց սայտում մնա, ինքը այլևս չի համարվի на сайте ?, բայց իրականում ինքը սայտում ա
Դրա համար ամեն X<10 րոպեում odnoklassnik-ում reload է կատարվում)
Mersi ar4i_s
հլը մի հատ փորձեմ անեմ