im thực hiện một số mã thống kê cho trang web của tôi (im a php developper). Tôi muốn tính toán bao nhiêu giây/phút người dùng web ở lại trên bất kỳ trang nào (như google analytics làm) nhưng tôi không có ý tưởng về cách thực hiện điều này. Cảm ơn bạn vì bất kỳ trợ giúp hoặc tập lệnh nào!Cách tính thời gian người dùng trên trang web?
Trả lời
Bạn thu thập dữ liệu như thế nào? Các tùy chọn phổ biến sẽ được thiết kế trang bằng javascript, xem tệp nhật ký máy chủ web, trong trình xử lý yêu cầu phía máy chủ hoặc đánh hơi lưu lượng truy cập TCP/IP.
Làm như "như Google Analytics" ngụ ý trước đây. Trong trường hợp đó, cách để thực hiện việc này là lấy dấu thời gian càng sớm càng tốt khi trang tải (thay vì chờ sự kiện sẵn sàng/tải trang) và so sánh giá trị đó với thời điểm trước đó (vì vậy bạn có thể lưu trữ thời gian đó một cookie). Sau đó, bạn cần một số cách để gửi lại serverside này, và một cách ghi âm và báo cáo về dữ liệu.
Lưu ý rằng cố gắng kích hoạt cuộc gọi ajax khi người dùng rời khỏi trang, ví dụ: qua onunload, sẽ không hoạt động đáng tin cậy (trang khởi chạy yêu cầu ở cuối vòng đời của nó). Điều quan trọng ở đây là phần ASYNCHRONOUS. Và thực hiện cuộc gọi đồng bộ sẽ chỉ có tác dụng làm chậm trang web.
Bạn có thể muốn xem Yahoo Boomerang - mặc dù nó không hỗ trợ đo thời gian dừng ngoài hộp, thật dễ dàng để mở rộng. Đối với chương trình phụ trợ, bạn có thể làm tồi tệ hơn nhiều hơn Graphite
Khi tải trang tạo đối tượng ngày, sau đó khi tải trang tạo ra một đối tượng khác và loại trừ chúng. Sau đó, bạn có thể thực hiện yêu cầu AJAX cho máy chủ theo dõi của mình, gửi thời gian đã trôi qua.
var startTime = new Date();
var endTime;
window.onunload = function()
{
endTime = new Date();
var elapsedSeconds = endTime.getTime() - startTime.getTime();
//Do the ajax request, sending elapsedSeconds
}
Bạn có thể kích hoạt sự kiện tải xuống trong javascript khi người dùng rời khỏi trang, gửi yêu cầu Ajax đến máy chủ của bạn. Vì điều này có thể không hoạt động trong tất cả các trình duyệt, đặc biệt nếu độ trễ mạng cao, cũng có một tập lệnh ping (cũng với Ajax) gọi hệ thống thống kê của bạn một lần miễn là người dùng ở lại trên trang (ví dụ: mọi 10-60 giây tùy thuộc vào độ phân giải bạn muốn).
Nếu bạn muốn làm điều đó trong serverside tức là trong php thì có lẽ bạn sẽ cần một bảng phân bổ cho việc này. nói "analytic"
Trước tiên, bạn cần thêm tập lệnh này vào mọi trang. chèn dữ liệu vào bảng phân tích là $ _SERVER ['http_referer'], dấu thời gian hiện tại, địa chỉ từ xa và URL trang hiện tại.
Bây giờ là phần tính toán. về cơ bản khi người dùng lần đầu tiên đến trang của bạn $ _SERVER ['http_referer'] sẽ không nằm trong miền của bạn. Sau đó giữ dấu thời gian làm thời gian bắt đầu.
Bây giờ hãy kiểm tra dấu thời gian tiếp theo. Nếu http_referer giống với URL trang bản ghi trước đó thì hãy tìm sự khác biệt trong dấu thời gian để biết số người dùng đã ở trong một trang.
Nhiều hoặc ít những gì đang cố gắng nói là tìm thời gian giữa mỗi yêu cầu từ người dùng.
Bất lợi của phương pháp này: Khi người dùng đến một trang đóng cửa. không thể tìm thấy thời gian trên trang web của bạn.
Phương pháp nhanh chóng và dễ dàng mà tôi đưa ra là khá hữu ích.
Trên mỗi trang của trang web mà tôi muốn theo dõi thời gian trên trang, tôi bao gồm tập lệnh theo dõi.
tôi lấy càng nhiều thông tin càng tốt, và làm cho một mục cơ sở dữ liệu, bao gồm cả giới thiệu, các yêu cầu/trang nạp, user-agent, ip, dấu thời gian, vv
Những timestamps, phối hợp với ip của người dùng, có thể được sử dụng để xác định thời gian người dùng ở trên trang trước (bao gồm cả thời gian tải của trang hiện tại).
Hạn chế duy nhất là tôi không thể xác định thời gian trên trang cuối cùng mà họ truy cập (không phải lúc nào cũng là điều xấu, tôi có thể giảm thời gian rảnh).
Số trang không truy cập được xác định bởi các mục nhập duy nhất bởi một ip nhất định trong một khoảng thời gian xác định (một giờ có thể là đủ).
- 1. Cách theo dõi thời gian của người dùng trên trang web
- 2. thời gian người dùng lớn hơn thời gian thực
- 3. Hiển thị thời gian của một máy tính khác trên trang web bằng Javascript?
- 4. windows thời gian tải trang web azure
- 5. phantomJS thời gian chờ trang web
- 6. Cách tạo lối tắt ứng dụng web trên máy tính của người dùng theo chương trình?
- 7. Cách lập trình Thêm người dùng OpenID vào trang web
- 8. Hiển thị nguồn cấp dữ liệu/dòng thời gian trên Facebook trên trang web
- 9. Đặt lời chào dựa trên thời gian của người dùng (Chào buổi sáng, chào buổi chiều…)
- 10. Đo Thời gian tải của trang web (C#)
- 11. Thuộc tính thời gian chạy do người dùng định nghĩa giao diện người dùng không chấp nhận phao nổi?
- 12. Sơ đồ trang web ngẫu nhiên ngắt theo thời gian
- 13. Làm cách nào để ngăn người dùng đăng dữ liệu nhiều lần trên trang web
- 14. Làm cách nào để giảm "Thời gian cho byte đầu tiên" trên trang web của tôi?
- 15. Cách cho phép người dùng ẩn danh chỉnh sửa tài liệu Google Drive thời gian thực?
- 16. Cách đếm số lượng người dùng đồng thời sử dụng dữ liệu khoảng thời gian?
- 17. Cách xác thực người dùng trên máy chủ web TortoiseHg?
- 18. Làm cách nào để biết người dùng đã rời khỏi trang web của tôi
- 19. Lực lượng đăng xuất người dùng nếu người dùng không hoạt động trong một khoảng thời gian nhất định
- 20. Công cụ kiểm tra thời gian phản hồi trang web
- 21. Đang chờ người dùng nhập vào với thời gian chờ
- 22. Hệ thống hồ sơ người dùng trang web pandora
- 23. Giao diện người dùng Tridion trên trang động
- 24. Tính toán thời gian yêu cầu dịch vụ web
- 25. Cách "Kiểm tra Khỉ" trên trang web
- 26. đặt thời gian chờ cho đầu vào của người dùng
- 27. Nội dung được đổi chỗ cho nhiều phiên người dùng trên trang web asp.net
- 28. Giao diện người dùng thay thế chọn trong quản trị django để giảm kích thước trang trên trang web lớn?
- 29. Tên nào cho vai trò người dùng trang web chuẩn?
- 30. Django: Làm cách nào để kiểm tra thời gian hoạt động cuối cùng của người dùng nếu người dùng không đăng xuất?
Thường thì tốt hơn là thực hiện các phép tính ở phía máy chủ để người dùng không thể giả mạo chúng. –
Đúng, nhưng bạn phải tự hỏi chính xác bạn muốn theo dõi những gì. Khoảng thời gian giữa window.load và window.unload hoặc thời gian giữa khi máy chủ nhận được phản hồi đầu tiên và lần thứ hai. Có thể có sự khác biệt đáng chú ý. – TJHeuvel
Đảm bảo yêu cầu Ajax hoàn tất đáng tin cậy mà không ảnh hưởng đến quá trình chuyển đổi trang sẽ rất khó khăn. – symcbean