10/10/2018, 13:19
Cách tính số người đang xem, đã xem từng chuyên mục
chào các bác
Như title đã nói, mình đang muốn đếm số người đang xem từng chuyên mục. nhưng chưa hiểu cách thức nó làm việc như thế nào.
Mình định tạo ra 1 table(table_view_box) lưu ip của khách truy cập vào và tham chiếu đến chuyên mục. khi hiển thị thì đếm số ip trong cùng chuyên mục ra.
Các bác phân tích xem, e suy luận vậy có đúng không, hay là có cách nào khác hay hơn thế.
-----
Câu hỏi phụ.
Mình đã tính số người đã xem bài viết rồi, nhưng khi người ta f5 thì nó lại tăng lên 1, có cách nào khắc phục đc không ak.
Giải thuật của mình thì thế này, khi người ta vào xem 1 bài nào đó, thì select cột view trong data ra rồi cộng thêm 1.
Tính như thế này thì thấy ảo quá....không chính xác.
Các bác giúp em với nhe. Chúc các bác 1 tuần làm việc thành công.
Như title đã nói, mình đang muốn đếm số người đang xem từng chuyên mục. nhưng chưa hiểu cách thức nó làm việc như thế nào.
Mình định tạo ra 1 table(table_view_box) lưu ip của khách truy cập vào và tham chiếu đến chuyên mục. khi hiển thị thì đếm số ip trong cùng chuyên mục ra.
Các bác phân tích xem, e suy luận vậy có đúng không, hay là có cách nào khác hay hơn thế.
-----
Câu hỏi phụ.
Mình đã tính số người đã xem bài viết rồi, nhưng khi người ta f5 thì nó lại tăng lên 1, có cách nào khắc phục đc không ak.
Giải thuật của mình thì thế này, khi người ta vào xem 1 bài nào đó, thì select cột view trong data ra rồi cộng thêm 1.
Tính như thế này thì thấy ảo quá....không chính xác.
Các bác giúp em với nhe. Chúc các bác 1 tuần làm việc thành công.
Bài liên quan
IP
timeOnline
Thêm 1 fields là timeOnline nữa bạn nhé !! Nếu người ta không xem trong vòng 5 phút thì delete hết những row đó đi ! ( Cái IP để xác định đó là ai để cập nhật lại timeOnline cho IP đó )
Nói chung nếu để chuẩn xác hơn thì bạn phải lưu trữ nhiều dữ liệu hơn >> Nặng hơn >> Chấp nhận điều này thì mọi thứ sẽ oke
Còn cái tính số người đã xem rồi nó cữ tăng mãi lên 1 khi F5 thì làm sao khắc phục vậy bạn.
postID
postIP
query theo trường post ID và post IP nếu chưa có thì + view lên 1, đồng thời add IP vào tương ứng với Post ID
nếu có rồi thì thôi không cộng nữa là oke !
Cái này làm vậy phải tốn tất cả là 2table và chứa dữ liệu cả đống luôn. Vậy có cách nào tối giản hơn nữa mà cùng chức năng như thế không bác.
Đó là bạn dùng chính session id để phân biệt các user với nhau. Khi có 1 session start, bạn lưu vào csdl thời gian bắt đầu session và session id.
Cho 1 đoạn javascript tự động post lên server cứ mỗi 1 thời gian nhất định, 5ph chẳng hạn, để tăng cho session id này thêm 5ph nữa.
Và xóa tất cả session id cách thời điểm hiện tại hơn 5ph.
Đồng thời lấy ra số session id còn hiệu lực.
Cám ơn 2 bác nhiều nhe.