2010-10-19 30 views
6

Cách tốt nhất để theo dõi số lượt xem trang là gì? Ví dụ: SO có bao nhiêu lượt xem một Câu hỏi, nhưng nhấn làm mới không tăng số lượt xem.Cách theo dõi số lần xem trang

Tôi đã đọc rằng việc sử dụng cookie là một cách khá hay để làm như vậy, nhưng tôi đang thua lỗ về cách điều này không bị mất.

Tôi đã tìm kiếm tất cả và không thể tìm thấy câu trả lời hay cho việc này.

EDIT:

Tôi cũng thấy rằng tùy chọn khác (một lần nữa tôi có thể là sai lầm khủng khiếp) là sử dụng API của Google Analytics để xem trang. Đây có phải là một lựa chọn khả thi không? Stackoverflow, youtube và những người khác theo dõi lượt xem của họ như thế nào?

+0

ngôn ngữ lập trình nào? phía máy chủ? phía khách hàng? bên thứ ba? cuộn của riêng bạn? –

+0

GA là một tùy chọn tuyệt vời. Hoặc bạn có thể chạy báo cáo trên nhật ký máy chủ của mình, như grep cho số lượng GET cho index.html. – eSniff

+0

Tôi đang làm việc trên một dự án mới bằng cách sử dụng khung công tác yii (mà tôi không có nhiều kinh nghiệm với). – Booski

Trả lời

3

Bạn có thể theo dõi chúng trong cơ sở dữ liệu nếu bạn đang cuộn của riêng mình. Mỗi khi trang tải, bạn gọi một phương thức sẽ quyết định xem có nên tăng lượt xem trang hay không. Bạn có thể thêm bất kỳ tiêu chí nào bạn thích.

NẾU IP là duy nhất
HOẶC IP đã không truy cập trong 20 phút dựa trên một phiên biến
ETC
sau đó thêm một kỷ lục xem trang

| ID | IPAddress | ViewDateTime | 
| 1 | 1.2.3.4 | Oct 18 ... | 

Tuy nhiên, các biến session có thể nhận được tải khá chuyên sâu trên các trang web với nhiều khách truy cập như SO. Bạn có thể phải sáng tạo hơn một chút.

Bây giờ, nếu bạn không muốn viết mã, tôi khuyên bạn nên xem xét SmarterStats khi đọc nhật ký máy chủ của bạn và mạnh mẽ hơn phân tích.

lưu ý: Tôi không chắc chắn về một phần mềm Apache tương tự

0

Tôi đặt biến phiên có địa chỉ tôi đang kiểm tra, sau đó chuyển đổi nó nếu nó bị trình duyệt đó nhấn. Trong mẫu trang của tôi, tôi kiểm tra var cho trang đó và xử lý khi thích hợp.

0

Một đơn giản, phương pháp hacky:

Tạo bảng MySQL địa phương để theo dõi:

CREATE TABLE pageviews ( pageview_count int(9) default NULL )

Sau đó, trên trang index.php, hoặc bất cứ nơi nào người dùng sẽ được hạ cánh, bạn có thể chạy truy vấn cập nhật trên trường đó.

<php 
$link = mysql_connect('localhost','root',''); 
if (!$link) { 
    die('could not connect ' .mysql_error()); 
} 
$mysql = mysql_select_db($database_name,$link); 
$query = mysql_query('UPDATE pageviews set pageview_count = pageview_count + 1;'); 
mysql_close(); 
Các vấn đề liên quan